PDB和调试过程的单独工作目录

时间:2013-04-28 15:53:29

标签: linux debugging gdb working-directory

在我正在进行的项目中,我使用gdb进行调试 - 我希望能够从gdb调用make - 但我不能,因为这意味着工作目录不正确。这是我的目录布局和我尝试过的两个选项:

Project
 ├─bin
 │ ┗━Option 1
 ├─build
 │ ├─debug.sh
 │ ┟─makefile
 │ ┗━Option 2
 ├─include
 └─src

以下是debug.sh使用选项1

的内容
#!/bin/bash
gdb --cd=../bin ../bin/ProjectBinary -ex run

选项1:

当我调用./debug时,程序运行正常 - 工作目录正确设置为Project/bin。但我无法从gdb调用make,因为makefile不在当前目录中。

选项2(debug.sh未显示):

当我调用./debug时,程序失败,因为工作目录设置不正确 - 但我可以从gdb成功调用make

我如何充分利用这两个世界并允许它,以便我可以从gdb调用make,以及工作目录对可执行文件是正确的 - 即我如何有2个工作目录,一个用于正在调试的程序,以及一个用于gdb的程序吗?

1 个答案:

答案 0 :(得分:2)

留在 bin / ,但将“ -c ”选项传递给制作,以便切换到 ../ build 首先

$ cd ./bin
$ gdb ProjectBinary
(gdb) make -C ../build

您还可以创建调用bin/Makefile的<{1}}:

<强>仓/生成文件

build/Makefile

(将空格更改为调用make的行开头的制表符)

然后运行:

.PHONY: all
all:
        make -C ../build