我有一个应用程序有时会崩溃并创建下一个文件:(APP.exe.stackdump)
Exception: STATUS_ACCESS_VIOLATION at eip=6BA4B246
eax=67452301 ebx=EFCDAB89 ecx=98BADCFE edx=10325476 esi=FFFFFFFF edi=98BADCFE
ebp=FFFFFFFF esp=01A2C928 program=C:\APP.exe, pid 168, thread unknown (0x13E8)
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame Function Args
End of stack trace
我在 Windows、Ubuntu 和 Centos 中使用 g++ 进行编译。该错误有时仅在线程内发生,无论如何都可以获取发生位置的堆栈跟踪?或者任何额外的信息?
更新 1:
我可以用:
signal(SIGSEGV, sigHandler);
但我仍然没有堆栈跟踪信息。
最佳答案
Or any extra info?
使用 valgrind 或 efence。两者都非常擅长在取消引用时发现野指针的使用,而不是在使用损坏的数据时发现。
关于c++ - C++ 中的 Stackdump 不显示堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6910884/