如何在gdb中分解一个过载的运算符?

3
如果我有像 bool operator ==(const uint128& x, const uint128& y); 这样的东西,我该如何让gdb对其进行反汇编?

uint128是如何实现的?如果它是一个内置的整数类型,那么你不能定义operator==。 - Jonathan Graehl
它被定义为两个无符号长整型的结构体。 - gct
1个回答

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) 

给我返回了“未匹配的单引号”错误。我尝试过使用双引号和不加引号,但都不行。 - gct
尝试使用“p”替换“disassemble”。然后将地址传递给disassemble。 - Jonathan Graehl
如何获取函数的地址? - gct
啊哈,确实是这样,我把变量名也包含进去了,这就是问题所在。谢谢! - gct

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接