私のアプリケーションで生成されたコアダンプを解析しています。スタックトレースから私は昇給で以下の行 #0 0x00779effを(見ることができます)gdbを使用したコアダンプフレームの解析
int
Buffer::resize (
size_t size
)
{
…….
}
を次のように/lib/tls/libc.so.6
#1 0x0077b705 in abort() from /lib/tls/libc.so.6
#2 0x006554f7 in __cxa_call_unexpected() from /usr/lib/libstdc++.so.5
#3 0x00655544 in std::terminate() from /usr/lib/libstdc++.so.5
#4 0x006556b6 in __cxa_throw() from /usr/lib/libstdc++.so.5
#5 0x006558d2 in operator new() from /usr/lib/libstdc++.so.5
#6 0x006559bf in operator new[]() from /usr/lib/libstdc++.so.5
#7 0x090c15df in Buffer::resize()
#8 0x090bd230 in Buffer::Buffer()
からバッファ機能の定義は、
今私はフレーム7
(gdb) f 7
#7 0x090c15df in Buffer::resize()
(gdb) info frame
Stack level 7, frame at 0xbfff82f0:
eip = 0x90c15df in Buffer::resize(unsigned int); saved eip 0x90bd230
called by frame at 0xbfff8310, caller of frame at 0xbfff8280
Arglist at 0xbfff82e8, args:
Locals at 0xbfff82e8, Previous frame's sp is 0xbfff82f0
Saved registers:
ebx at 0xbfff82e4, ebp at 0xbfff82e8, esi at 0xbfff8250, edi at 0xbfff8254, eip at 0xbfff82ec
を選択しかし、私はそれをどのように行うのです サイズの値が渡されたかどうか確認したかったのか?任意の助けを
おかげSKP
これは、コードがデバッグシンボルでコンパイルされているかどうかに依存します。 resize関数はコンストラクタから呼び出されるので、これから使用されるパラメータの値を確認することはできませんか、コンストラクタにパラメータとして与えられるサイズですか? –
これは-gオプションでコンパイルされます – user3160866
最適化されたコードをデバッグしようとしていますか? – dbrank0