2016-06-23 5 views
1

私はC++とC言語で書かれたプログラムを持っています。私がGDBでプログラムを実行すると、行番号とC++コードのソースにアクセスできますが、Cコードではありません(つまり、スタックトレースは私にC++関数を呼び出しますが、Cでは使用できません)。さらに、私はCコードにエラーがあることを知っています。GDB with C++ with C code

GDBにもCコードを表示する方法はありますか? Cコードのどの行が私の問題を引き起こしているかを知ることは非常に便利ですが、それが立っているので、プログラムが問題からクラッシュしたときだけメモリアドレスを取得します。

また、私はあなたがC++コードだけでなく、Cコードのデバッグ情報を生成している設定set(CMAKE_CXX_FLAGS, "-g -fopenmp -Wall")

+1

「コール」とはどういう意味ですか?そして、すべてはどのように構築されていますかシンボルなどが含まれていることを確認するには、すべてのコンパイルでデバッグサポートを有効にする必要があります。 – unwind

+1

デバッグオプションでコンパイルします。 –

+0

makefileはCMakeによって生成され、set(CMAKE_CXX_FLAGS、 "-g -fopenmp -Wall")を指定します。 Cのデバッグを有効にするために含める必要があるフラグはありますか?私は-gがそれを世話すると思った。 – QtizedQ

答えて

2

でCMakeのを使用して、私のメイクファイルを生成しています。また、このようなCMAKE_C_FLAGS設定する必要があります。必要に応じて

set(CMAKE_C_FLAGS, "-g") 

は、より多くのオプションを追加します。

+0

私が必要としていたことを正確に、あなたの答えに感謝します。 – QtizedQ