Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.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
gdb反向步进-Linux中不支持?_Linux_Gcc_Gdb - Fatal编程技术网

gdb反向步进-Linux中不支持?

gdb反向步进-Linux中不支持?,linux,gcc,gdb,Linux,Gcc,Gdb,这是在Linux 2.6.18中实现的 内核不支持它吗?我需要一个特殊的gcc参数吗 (gdb) reverse-step Target child does not support this command. 这是在Linux 2.6.18中实现的 内核不支持它吗 内核与此无关。您使用的是什么版本的gdb 考虑到您的GCC可以追溯到2008年,并且GDB在2009年发布的7.0版本中增加了对反向执行的支持,我猜您的GDB太老了。我不是专家,但似乎您忘记启用GDB录制了 gcc --vers

这是在Linux 2.6.18中实现的

内核不支持它吗?我需要一个特殊的gcc参数吗

(gdb) reverse-step
Target child does not support this command.
这是在Linux 2.6.18中实现的

内核不支持它吗

内核与此无关。您使用的是什么版本的gdb


考虑到您的GCC可以追溯到2008年,并且GDB在2009年发布的7.0版本中增加了对反向执行的支持,我猜您的GDB太老了。

我不是专家,但似乎您忘记启用GDB录制了

 gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
例如,这对我来说很有效

(gdb) record
(gdb) continue
(gdb) reverse-continue
Continuing.
我能用计算机重现你的问题

Breakpoint 1, main (argc=1, argv=0x7ffe673b5638) at ...
7     int lol = 0xbeefface;
(gdb) record
(gdb) continue
Continuing.

Program stopped.
0x00007f710c188746 in __GI__exit ...
(gdb) reverse-continue
Continuing.
...
No more reverse-execution history.
main (argc=1, argv=0x7ffe673b5638) at ...
7     int lol = 0xbeefface;

那只是。。难以置信的非常好的功能!但是它不是太慢了吗?@KarolyHorvath-hmm…嗯…这个功能有点没用了…我希望它能帮助我调试指针变成荒谬值的情况。想从撞车事件中退一步,向前看一看它是如何发生的。record命令甚至不能处理我的程序发出的前几个系统调用。哦,好吧。我验证了如果我不尝试“继续”它是否有效。如果你做出了这样的回答,你可能会胡扯一些观点…@CrazyEddie反向调试功能非常有用,它可以完全用于你描述的场景。您只需要一个最新的
gdb
Breakpoint 1, main (argc=1, argv=0x7ffeb7945198) at main.c:7
7     int lol = 0xbeefface;
(gdb) b _exit
Breakpoint 2 at 0x7fc62dbb8710: file ...
(gdb) continue
Continuing.

Breakpoint 2, __GI__exit ...
(gdb) reverse-continue
Target native does not support this command.