0

私が取り組んでいるプロジェクトでは、gdb を使用してデバッグします - makegdb から呼び出すことができるようにしたいのですが、それは作業ディレクトリが正しくないことを意味するため、できません。これが私のディレクトリレイアウトと私が試した2つのオプションです:

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

オプション1debug.shの利用内容はこちら

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

オプション1:

を呼び出す./debugと、プログラムは正しく実行されます。作業ディレクトリは正しく設定されていProject/binます。makeしかし、makefile が現在のディレクトリにないため、gdb から呼び出すことはできません。

オプション 2 (debug.sh表示されていません):

を呼び出す./debugと、作業ディレクトリが正しく設定されていないためにプログラムが失敗しますがmake、gdb からは正常に呼び出すことができます。

両方の世界を最大限に活用し、gdb から呼び出すことができるようにするmake方法と、実行可能ファイルの作業ディレクトリを正しくするにはどうすればよいですか。つまり、2 つの作業ディレクトリ (1 つはデバッグ対象のプログラム用、もう 1 つはgdb自体?

4

1 に答える 1

2

bin/にとどまりますが、「-c」オプションをmakeに渡して、最初に../buildに切り替えるようにします

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

bin/Makefile次を呼び出す作成することもできますbuild/Makefile

ビン/メイクファイル

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

(makeを呼び出す行の先頭でスペースをタブに変更します)

次に実行します。

$ gdb ProjectBinary
(gdb) make
于 2013-04-28T20:56:15.147 に答える