我想调试用GDB调试远程应用程序。
我的目标系统是运行gdbserver
的FreeBSD 8.3框。该应用程序已在该框中成功编译。我的Eclipse CDT 4.2在Windows 7上运行,最近安装了MinGW。
这是我想要调试的外部程序。它既不是我写的,也不是我作为一个图书馆。我不打算写自己的程序。在这种情况下,我想调试Subversion 1.8.0-dev。
我创建了一个简单的C项目,附加了Subversion的源代码。创建了一个远程调试配置,并将源附加到gdbserver
中正在运行的线程。
现在,eclipse进入了Subversion的main
函数,但是当我在另一个附加的源文件中设置断点时,Eclipse说:没有名为ra_loader.c
的源文件,或者只是说“没有可用的源”。
然后它只是存在应用程序。
我在这里缺少什么?
答案 0 :(得分:0)
尝试在this thread
上提出的建议引用:
1)运行调试会话并在Eclipse中打开gdb控制台 ('控制台'标签 - >'显示所选控制台'按钮 - >选择一个 以'gdb'结尾)
2)在控制台中使用命令'pwd'进行打印 gdb目前的工作目录
3)使用命令'info line main'来获取 gdb期望找到我的“int main(...)”的源文件 功能
4)将步骤2的结果与步骤结果连接起来 3(应该是一个相对路径),看它是否匹配 我想要的正确源文件
5)在gdb中使用'cd'命令(to 改变当前工作目录)直到我得到正确的匹配 第4步 知道gdb的初始工作目录(2)和正确的工作目录(5),我有2个选项:1)使用gdb的'cd' 每次启动调试会话时都会命令(我可以设置一个 .gdbinit文件在gdb初始工作目录中执行此操作 自动)或2)在'Debug'中设置'Source'选项卡 配置',使Eclipse使用与gdb匹配的路径 初始工作目录('项目 - 相对于源文件夹的路径' 为我工作)