我正在使用gcc 4.9.2& sparc上的Solaris 10中的gdb 7.2。在使用-g
,-ggdb
和-ggdb3
进行编译/链接后,对以下内容进行了测试。
当我附加到流程时:
~ gdb
/snip/
(gdb) attach pid_goes_here
...它没有加载符号信息。我开始使用netbeans启动gdb而不指定可执行文件名,直到附加发生,但我已经消除了netbeans作为原因。
如果我执行以下操作之一,我可以强制它在netbeans下加载符号表:
附加到进程,然后在调试器控制台中执行以下操作之一:
(gdb) detach
(gdb) file /path/to/file
(gdb) attach the_pid_goes_here
或
(gdb) file /path/to/file
(gdb) sharedlibrary .
我想知道是否有一种更自动的方法可以强迫这种行为。到目前为止,谷歌上传了zilch。
答案 0 :(得分:1)
我想知道是否有更自动的方法可以强迫这种行为。
它看起来像一个bug。
您确定 主要可执行符号已加载吗? This bug说attach pid
没有提供二进制文件根本不适用于Solaris。
在任何情况下,它都应该自动运行,所以最好让它更好地工作可能是提交错误,并等待它修复(或者发送修补程序来自行修复它: - )