tma*_*ric 6 debugging multithreading gdb reverse-debugging
我在gdb(版本7.1)中收到以下消息:
[Thread debugging using libthread_db enabled]
和命令 reverse-step
结果出现以下错误消息:
(gdb) reverse-step
Target multi-thread does not support this command
Run Code Online (Sandbox Code Playgroud)
我正在调试一个串行代码,所以我绝对不需要多线程.我可以以某种方式关闭它,以便我获得最新的反向调试命令吗?此外,如果代码与OpenMPI并行化,则根本不需要多线程调试,对吧?
编辑:这是否设置为可以被排除的编译标志?
您没有提到您正在使用的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.
Run Code Online (Sandbox Code Playgroud)
将告诉GDB libthread-db.so
在它不是的目录中查找它的帮助库(),因此不会启用多线程调试!
我不确定OpenMPI并行应用程序是多进程的(与OpenMP一样,它们是多线程的),所以它不会为你改变任何东西.
编辑:多线程调试通常仅在libpthread.so
您的进程加载或等效时启用(ldd your-process
以检查它是否作为共享库链接),因此如果您不需要它,则编译脚本中可能存在问题.
归档时间: |
|
查看次数: |
3132 次 |
最近记录: |