(gdb) reverse-step
Target child does not support this command.
这是在Linux 2.6.18中
内核不支持吗?我需要一个特殊的gcc arg吗?
gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-52)
答案 0 :(得分:1)
这是在Linux 2.6.18中
内核不支持吗?
内核 nothing 与它有关。您使用的是什么版本的 gdb ?
鉴于你的GCC可以追溯到2008年,并且GDB在2009年发布的7.0版本中增加了对反向执行的支持,我猜你的GDB只是太老了。
答案 1 :(得分:1)
在我虚弱的心中,您似乎忘记了启用gdb记录。
(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;
我能够用
重现您的问题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.