我正在使用GDB调试一组C源文件。我用-g标志编译了所有文件。我甚至可以将断点设置在有效位置。
$ cd /home/user/project/test
$ gdb ../src/exec
Reading symbols from /home/user/project/src/exec...done.
(gdb) b driver.c:196
Breakpoint 1 at 0x80698ac: file driver.c, line 196.
(gdb) r input.txt
Starting program: /home/user/project/src/exec input.txt
Breakpoint 1, handle_new_request (curriodriver=0x810b228, curr=0x8143ec0)
at driver.c:196
196 driver.c: No such file or directory.
in driver.c
为什么GDB无法从driver.c读取该行?
答案 0 :(得分:1)
这是因为gdb
不知道在哪里查找文件。您可以设置断点,因为断点信息是攻击可执行文件的调试信息的一部分。但要实际显示源代码,需要找到实际的源代码。可能使用不同的工作目录运行gdb
将解决问题。