2012-01-16 17 views
1

私はゲーム「Rogue」とそのソースコードのコンパイル版を持っています。時々、一見無作為な時間に、ゲームは非記述的なエラーメッセージを出すでしょう。Cエラーの正確な行番号?

IDEでソースをコンパイルし、IDEで実行したときにプログラムが失敗する特定の行番号を取得する方法はありますか?

+0

ソースがある場合は、「ソースデータベース」でビルドされている場合は、エラーの原因をデバッグする方法があります。もっと情報を知る必要があります。どのプラットフォームを実行しているのか、どのコンパイラがビルドしているのか、どんなツールを念頭に置いているのでしょうか。 – CashCow

答えて

2

あなたがエラーメッセージを編集することができた場合:

printf (stderr, "Blah error at %s (%d)\n", __FILE__, __LINE__); 

あなたが正確な位置を得ることができます。

すべてのメッセージは大きな痛みだろう編集ので、私はあなたがそれをしないマクロを定義することをお勧めしたいが:

#define MYERR(...) do { \ 
    printf ("@ %s (%d): ", __FILE__, __LINE__); \ 
    printf (__VA_ARGS__); \ 
} while (0) 

すべてのエラーメッセージを交換するには、に追加するよりもはるかに簡単厥(このマクロを呼び出すために呼び出します各メッセージ)。

+0

行番号は#lineプリプロセッサディレクティブで再定義できるので、 "正確な場所"は必ずしも正しいとは限りません。 –