2017-02-21 7 views
0

私たちのカスタムLinux環境では動作しないプログラムをデバッグしています。私はそのソースにアクセスすることができないので、何かをコンパイルまたは追加することはできません。 問題はその共有ライブラリのどこかにあり、私はおおよそのアドレス範囲を知っています。質問は次のとおりです。質問はどのように私は手作業なしの場所にブレークポイントを設定してくださいGDB:共有ライブラリに対するアドレス

info sharedlibrary 
<find address of library.so> 
break <address of library.so>+<location> 

答えて

0

のように:私は

GDB(でのような手作業なしの場所にブレークポイントを設定するのですかデフォルト)は、アドレスのランダム化を無効にします。

GDBでプログラムを最初から実行した場合(すなわち、実行中のプロセスがattachでない場合)、「手動作業」を1回実行して以降のすべての実行で同じアドレスを再使用するだけで済みます。

更新:

私は最初からGDBの下でアプリケーションを実行することはできません。手動で起動することはできません。

その場合

(デバッグ中)、ちょうどASLRのシステム全体を無効にする:アイデア

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space 
+0

おかげで、私は最初からGDBの下でアプリケーションを実行することはできません。手動で起動することはできません。 –

+0

@ArtemMartynovich答えを更新しました。 –

関連する問題