2009-09-16 5 views
3

私はbool operator ==(const uint128 & x、const uint128 & y)のようなものを持っています。どうすればgdbに逆アセンブルさせることができますか?gdbでオーバーロードされた演算子をどのように逆アセンブルしますか?

+0

uint128はどのように実装されていますか?組み込みの整数型の場合は、演算子を定義することはできません。== –

+0

これは2つの符号なしlong longの構造体として定義されています –

答えて

7
(gdb) p 'operator==(uint128 const&,uint128 const&)' 
$1 = {bool (const uint128 &, const uint128 &)} 0x401040 <operator==(uint128 const&, uint128 const&)> 
(gdb) disassemble $1 
Dump of assembler code for function _ZeqRK7uint128S1_: 
0x00401040 <_ZeqRK7uint128S1_+0>:  push %ebp 
... (elided) 
0x00401066 <_ZeqRK7uint128S1_+38>:  ret  
End of assembler dump. 
(gdb) 
+0

「一致しない一重引用符」が返されます。二重引用符でも引用符もなく、サイコロもありませんでした。 –

+0

分解する代わりに「p」を付けて試してください。次に、アドレスを渡して分解します。 –

+0

機能のアドレスを取得するにはどうすればよいですか? –

関連する問題