在我正在进行的项目中,我使用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
当我调用./debug
时,程序运行正常 - 工作目录正确设置为Project/bin
。但我无法从gdb调用make
,因为makefile不在当前目录中。
debug.sh
未显示):当我调用./debug
时,程序失败,因为工作目录设置不正确 - 但我可以从gdb成功调用make
。
我如何充分利用这两个世界并允许它,以便我可以从gdb调用make
,以及工作目录对可执行文件是正确的 - 即我如何有2个工作目录,一个用于正在调试的程序,以及一个用于gdb的程序吗?
答案 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