C GDB无法从文件中读取

C GDB无法从文件中读取,c,gdb,C,Gdb,我正在使用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 S

我正在使用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读取行?

这是因为
GDB
不知道在哪里查找文件。您可以设置断点,因为断点信息是攻击可执行文件的调试信息的一部分。但要实际显示源代码,它需要找到实际的源代码。可能使用不同的工作目录运行
gdb
可以解决问题。

您还可以使用
目录
命令告诉gdb在哪里查找源。