Tag: 调试

堆栈跟踪中“纯虚拟”调用的含义是什么?

我的服务崩溃了,我有这个堆栈跟踪。 我无法从这里推断出任何东西 00007f859cd27834 __gnu_cxx::__verbose_terminate_handler() @ 00007f859cd25865 __cxxabiv1::__terminate(void (*)()) @ 00007f859cd25892 std::terminate() @ 00007f859cd263be __cxa_pure_virtual @ 0000000001996f9f My::Class::~Class() 有人可以帮忙吗?

当我在eclipse中踩过一个stdio函数时,我如何摆脱“无源可用”错误(C语言,使用CDT)

我正在使用eclipse编写C代码并尝试使用eclipse调试器调试代码/ 当我试图跨越stdio函数时,调试它给我”No source available”错误。 我已经包含了stdio.h 有没有办法忽略这些错误? 它们实际上并没有导致程序崩溃(这是由其他地方的段错误引起的),但我想研究一下eclipse的工具发生了什么,而不是通过cygwin和GDB。

GDB可以防止错误

使用gdb时,我在不同的C项目上遇到了这个问题。 如果我在没有它的情况下运行我的程序,它会在给定的事件中始终崩溃,可能是因为内存读取无效。 我尝试用gdb调试它,但是当我这样做时,崩溃似乎永远不会发生! 知道为什么会这样吗? 我在Windows上使用mingw工具链。

在没有优化的程序上使用VS2013进行调试,但当前上下文中仍然没有局部变量的符号

我正在尝试调试Python2.7以了解有关python如何工作的更多信息。 当我尝试在第4399行调试ceval.c时,我注意到我无法在IDE中看到arg值, 我检查了优化被禁用并且/ DEBUG选项已打开。 我看了反汇编,我确实看到arg有一个值,代码被执行了。 我尝试在VS2013和VS2017中进行调试,两者都是相同的甚至PDB加载 我使用dv命令尝试使用WinDbg,它仍然无法看到任何局部变量 我的编译命令是: /GS /analyze- /W3 /Gy /Zc:wchar_t /I”H:\project\cpython-2.7\Include” /I”H:\project\cpython-2.7\PC” /Zi /Gm- /Od /Fd”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\vc120.pdb” /fp:precise /D “_CONSOLE” /D “WIN32” /D “_WIN32” /D “_DEBUG” /D “_MBCS” /errorReport:prompt /GF /WX- /Zc:forScope /Gd /Oy- /MDd /Fa”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\” /nologo /Fo”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\” /Fp”H:\project\cpython-2.7\PCbuild\obj\win32_Debug\python\python_d.pch” 我的链接命令是: /OUT:”H:\project\cpython-2.7\PCBuild\python_d.exe” /MANIFEST:NO /NXCOMPAT /PDB:”H:\project\cpython-2.7\PCBuild\python_d.pdb” /DYNAMICBASE “kernel32.lib” “user32.lib” “gdi32.lib” “winspool.lib” “comdlg32.lib” “advapi32.lib” “shell32.lib” “ole32.lib” […]

包装abort()系统调用时出现奇怪的行为

我需要编写单一测试来包装abort()系统调用。 这是一段代码: #include #include #include extern void __real_abort(void); extern void * __real_malloc(int c); extern void __real_free(void *); void __wrap_abort(void) { printf(“=== Abort called !=== \n”); } void * __wrap_malloc(int s) { void *p = __real_malloc(s); printf(“allocated %d bytes @%p\n”,s, (void *)p); return p; } void __wrap_free(void *p) { printf(“freeing @%p\n”,(void *)p); return __real_free((void *)p); } […]

__strcpy_sse2_unaligned with -fno-builtin

我正在调试我的程序,然后最后一行发生了,我该如何解决? 我使用-fno-builtin来查看strcpy()但它显示__strcpy_sse2_unaligned被调用。 root@19:~/booksrc# gcc -fno-builtin -g char_array2.c root@19:~/booksrc# gdb -q ./a.out Reading symbols from ./a.out…done. (gdb) list 1 #include 2 #include 3 4 int main() { 5 char str_a[20]; 6 7 strcpy(str_a, “Hello World!\n”); 8 printf(str_a); 9 } (gdb) break 6 Breakpoint 1 at 0x708: file char_array2.c, line 6. (gdb) break strcpy Breakpoint 2 at […]

无法使用Cygwin和OpenSSL计算CMAC

我想使用OpenSSL计算CMAC。 我发现这个问题对我很有帮助。 但我遇到以下代码的问题: #include void dispHex(const unsigned char *buffer, unsigned int size) { int i=0; for (i=0; i<size-1; i++) { printf("%02X ", buffer[i]); } printf("%02x\n", buffer[i]); } int main() { size_t out_len; unsigned char res[16]; unsigned char mac_key[16] = { 0x00, 0x01 ,0x02 ,0x03, 0x04, 0x05, 0x06, 0x07, 0x00, 0x01 ,0x02 ,0x03, 0x04, 0x05, 0x06, […]

libusb-1.0调试信息

我想知道libusb_set_debug()是否有效。 我无法从中获得任何输出。 如果我使用–enable-debug-log配置和构建,我可以打开调试日志记录。 如果我将libusb_set_debug()设置为3,我应该获得与enable-debug-log相同的输出吗? 我没有LIBUSB_DEBUG env变量集。 我想我错过了一些简单的事情。 谢谢,

调试器:如何在崩溃转储中获得“Mutex Owned”或“Mutex Free”信息?

我不知道我在做什么,但我根本无法获得自己的调试器来保存正在调试的应用程序的“Mutex Owned”或“Mutex Free”信息。 如果我按如下方式调用它,CDB工作正常: cdb -pn test.exe -c “.dump /f /ma /u test.dmp;.detach;q” 当我在WinDbg中打开崩溃转储文件并键入以下命令时,我看到Mutex Free或Mutex Owned状态: 0:001> !handle 0 f Mutant Handle 7f4 Type Mutant Attributes 0 GrantedAccess 0x1f0001: Delete,ReadControl,WriteDac,WriteOwner,Synch QueryState HandleCount 2 PointerCount 4 Name \BaseNamedObjects\PAUL_HANG_MUTEX Object Specific Information Mutex is Owned <— THIS HERE IS WHAT I WANT TO SEE 下面是我的函数 – 我必须注释掉一些MiniDumpWith选项,因为它根本不会写崩溃转储文件,除非我将它们注释掉。 […]

如何使用Turbo C ++编译器在Notepad ++中编译和调试C ++

我在notepad ++中安装了NppExecute插件。 我无法弄清楚在Notepad ++中编译和调试C,C ++程序的下一步。 系统详细信息:(a)Turbo C目录C:\ TC(b)OS Windows 7 请提供有关如何设置环境变量和脚本以进行编译和调试的完整详细信息。