2011-08-24 34 views
6

跟蹤在documentation for gdb如何使用GDB

,跟蹤點目前只適用於遠程 目標。請參見指定調試目標一節。另外,您的 遠程目標必須知道如何收集跟蹤數據。此功能 在遠程存根中實現;但是,從本文編寫開始,中沒有任何存根分發與GDB支持跟蹤點。

強調我的。我在哪裏可以得到這樣一個存根(對於在Debian x86或x64上用GCC編譯的C/C++代碼)?或者我如何去製作一個?關於寫作存根的文檔僅提到了實現與串行端口通信的功能。謝謝!

+0

你應該在Linux上使用gdb的時候引用FSF GDB文件,(事實證明,這個特殊的部分並沒有改變),如蘋果GDB是「很久很久以前,在一個時間」分叉。 – matt

+0

是的,我得到了警告,說它從我的'gdb'中不受支持,並且發出了googling,這就是結果,但它肯定適用於當前的'gdb'。 – Gaius

回答

1

我不太瞭解遙控器,但gdb中的一些目標現在支持跟蹤點 可能有一種方法可以使用'普通'gdb info或show命令來獲取此信息,但我無法找到它。在下面的輸出中,由於'supported = 1',所以支持跟蹤點, 這可能不限於gdb存根,而且存根正在運行。

$ gdbserver/gdbserver :12345 ~/tests/test & 
$ gdb -quiet 
(gdb) file ~/tests/test 
Reading symbols from /home/ratmice/tests/test...done. 
(gdb) target remote :12345 
Remote debugging using :12345 
Remote debugging from host 127.0.0.1 
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. 
Loaded symbols for /lib64/ld-linux-x86-64.so.2 
0x00000035dd600b20 in _start() from /lib64/ld-linux-x86-64.so.2 
Created trace state variable $trace_timestamp for target's variable 1. 
Missing separate debuginfos, use: debuginfo-install glibc-2.13-2.x86_64 
(gdb) interpreter-exec mi2 -trace-status 
^done,supported="1",running="0",frames="0",frames-created="0",buffer-size="5242880",buffer-free="5242880",disconnected="0",circular="0" 
+0

這是哪個版本?我在內核2.6.32-5上有'gdb' 7.0.1-debian和'gcc' 4.4.5版。 'tstart'給了我''目標不支持這個命令''按照'gdbserver'中的例子運行。 'interpreter-exec mi2 -trace-status'給了我'^錯誤,msg =「未定義的MI命令:trace-status」'。謝謝! – Gaius

+1

在7.2中添加了-trace-status mi命令。 – matt