Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在GDB中使用跟踪_C_Debugging_Gdb_Debian_Remote Debugging - Fatal编程技术网

C 如何在GDB中使用跟踪

C 如何在GDB中使用跟踪,c,debugging,gdb,debian,remote-debugging,C,Debugging,Gdb,Debian,Remote Debugging,在: 跟踪点设施目前仅适用于远程用户 目标。请参阅“指定调试目标”一节。此外,您的 远程目标必须知道如何收集跟踪数据。此功能 在远程存根中实现;但是,没有存根 在撰写本文时随GDB支持跟踪点一起分发 我的。在哪里可以获得这样的存根(对于在Debianx86或x64上使用GCC编译的C/C++代码)?或者我该怎么做呢?关于编写存根的文档只提到实现与串行端口通信的函数。谢谢 我对远程不太了解,但gdb中的一些目标现在确实支持跟踪点 可能有一种方法可以使用“普通”gdb info或show命令来实现这

在:

跟踪点设施目前仅适用于远程用户 目标。请参阅“指定调试目标”一节。此外,您的 远程目标必须知道如何收集跟踪数据。此功能 在远程存根中实现;但是,没有存根 在撰写本文时随GDB支持跟踪点一起分发


我的。在哪里可以获得这样的存根(对于在Debianx86或x64上使用GCC编译的C/C++代码)?或者我该怎么做呢?关于编写存根的文档只提到实现与串行端口通信的函数。谢谢

我对远程不太了解,但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"

在linux上使用gdb时,您可能应该参考FSF gdb文档(事实证明,这一特定部分没有改变),因为Apple gdb是“很久以前”分叉的。是的,我收到了来自我的
gdb
的不支持它的警告,然后去谷歌搜索,这就是出现的原因,但它肯定适用于当前的
gdb
。这是哪个版本?我在内核2.6.32-5上安装了
gdb
7.0.1-debian和
gcc
4.4.5版
tstart
向我提供了
目标不支持此命令
按照您的示例在
gdbserver
中运行<代码>解释器exec mi2-跟踪状态向我提供
^错误,msg=“未定义的MI命令:跟踪状态”
。谢谢