gdbでC/C++プログラムを実行した場合(-gフラグでコンパイルした後)、特定の変数、引数などのアドレスを調べてからgdbの外で実行します(./
を使用)。アドレスはgdbで見たものと同じですか?彼らが異なっている場合、彼らは通常似ているか、それとも大幅に違うでしょうか?gdbアドレスと "実際の"アドレスの違いは?
私はgdbの中で(ブレークポイントの有無にかかわらず)完全に動作するバッファオーバーフロープログラムを持っているので、これを聞いていますが、gdbの外で実行しようとするとうまくいきません。
バッファオーバーフローについては、valgrindを試すことをおすすめします。 – Troubadour
"ulimit -c unlimited"を指定してプログラムを強制的にコアダンプし、gdbでコアファイルを調べます。 – strkol