11

この質問をオンラインで検索しようとしましたが、私の問題に対する適切な解決策が見つからないようです。さて、gdb を使用して C++ プログラムをデバッグしようとしています。プログラムは単純な main.cpp と model.h で構成されています。そして、コンパイルコマンドは

g++ -Wall -g -c main.cpp
g++ -Wall -g main.o -o OUTPUT

ほとんどすべてのアルゴリズムが model.h に格納されているため、cpp ファイルではなく、そのヘッダー ファイルをデバッグする必要があります。ただし、次のようにヘッダーにブレークポイントを配置しようとするたびに

tbreak model.h:163

gdb は常に「TNFmodel.h という名前のソース ファイルがありません」というメッセージを表示します。

GDBの別の質問ブレークポイントで、ヘッダーを含むフォルダーを「dir」でライブラリに追加することで解決策を見ました。しかし、私のヘッダーファイルはすでにソースフォルダーにあり、試した後

dir ./

問題は続きます。

それで、誰かが何が悪いのか知っていますか?gdb を使用してヘッダー ファイルをデバッグする方法は?

4

3 に答える 3

5

https://stackoverflow.com/users/760746/nobodyで提案されているように、ソースにヘッダーが含まれていることを確認する1つの方法は、チェックしてヘッダーを修正することです。

info sources

ヘッダー自体がソースにあることを確認した後(私の場合、問題はヘッダー名の文字の大文字小文字が混同され、どういうわけかそれが私のMac Bookでコンパイルされたということです)、行にブレークポイントを挿入しますヘッダーファイルは問題なく動作します。

于 2013-03-05T00:34:48.550 に答える
2

次のように、クラス/メソッド名で break を使用してみてください。

break  class::method
于 2013-03-04T18:34:47.843 に答える