我在gdb (7.1版)中收到以下消息:
[Thread debugging using libthread_db enabled]
和命令reverse-step
结果显示以下错误消息:
(gdb) reverse-step
Target multi-thread does not support this command我现在正在调试一个串行代码,所以我绝对不需要多线程。我是否可以以某种方式将其关闭,以便获得最新的反向调试命令?此外,如果代码与OpenMPI并行化,则根本不需要多线程调试,对吧?
Edit:是否设置为编译标志,可以直接排除?
发布于 2011-07-08 22:15:47
您没有提到您正在使用哪个版本的GDB,但是不久之后,参数libthread-db-search-path就可以使用了。
(gdb) set libthread-db-search-path /tmp
(gdb) start
Temporary breakpoint 1 at 0x400632: file threads.c, line 14.
warning: Unable to find libthread_db matching inferior's thread library, thread debugging will not be available.将告诉GDB在它没有的目录中查找它的助手库(libthread-db.so),所以多线程调试将不被启用!
我不确定OpenMPI并行应用程序是否是多进程的(与多线程的OpenMP不同),所以它不会改变任何事情。
编辑:多线程调试通常仅在进程加载了libpthread.so或等效程序时才启用(使用ldd your-process检查它是否作为共享库链接),因此如果您不需要它,那么编译脚本中可能存在问题。
https://stackoverflow.com/questions/6625486
复制相似问题