我有一个使用g++ -O0 -g
(GCC 4.3.4)构建的可执行文件,并且源代码立即存档。在以后它被改变了。我现在想调试原始版本。可执行文件保存了原始源代码的位置,该源代码现在由具有相同文件名的不同版本填充。我想将GDB(GNU gdb(GDB)SUSE(7.5.1-0.7.29))指向旧的源代码。我把它提取到了一个新的位置。我试过设置目录和替换路径。每次加载的源代码都是修改后的版本。我正在使用的命令是:
set directories /.../PILAGER2/unzip/source/
set substitute-path /.../PILAGER2/source/ /.../PILAGER2/unzip/source/
我用/.../.
替换了大部分路径但是,如果在到达断点时键入info source
,则会显示错误的文件。如果我从原始位置删除文件,则使用正确的文件。如何正确告诉GDB使用解压缩位置的源文件?
答案 0 :(得分:0)
在我的情况下,磁盘系统位于单独的服务器上。使用管理员提供的路径实际上是指向并行文件共享上的位置的链接。使用Panasas系统上的实际路径工作。在我的情况下,这意味着路径以/panfs/
开头,后跟服务器而不是/project/...