2011-02-07 13 views
0

私は、-ggdbフラグを使ってコンパイルされたELFバイナリを扱っているときにgdbを非常に効果的に使用することに慣れています。しかし、私はnormal non-strippedバイナリに直面しているときに直面しているいくつかの困難があります。gdbを効果的に使用する

  1. メインでブレークポイントを設定できますが、ブレークポイントをメインの開始から固定オフセット(たとえば10行)に設定する必要がある場合はどうすればよいですか?
  2. 通常、文字配列(bufなど)のアドレスはprint &bufです。しかし、現在の状況では、bufが現在のコンテキストで見つからないというメッセージが表示されます。

上記の問題にどう対処しますか?あなたがあまりにもいくつかの読書資料を提供できるなら、それは素晴らしいことでしょう。

答えて

4

ソース行番号や変数情報などを取得するには、デバッグシンボル(-ggdbなど)を使用してコードをコンパイルする必要があります。デバッグシンボルを付けずにコンパイルしますが、unstrippedは関数とグローバル変数名に保持されますが、他には何もありません。実行可能ファイルを削除すると、実行ファイルの一部が削除されます。だから、あなたの質問に答えて、あなたは-gでコンパイルせずにあなたが望むことをすることはできません。

関連する問題