- 论坛徽章:
- 2
|
天大的误会……
- 试试:
- >c++filt _ZN4baseC1Ev
- >c++filt _ZN5sbaseC1Ev
- 应该输出:
- base::base()
- sbase::sbase()
复制代码 也就是说…… 那2个调用, 都是构造函数…………
真正的虚函数调用在下面一些:
- 804866e: ff d2 call *%edx
- 80486a1: ff d2 call *%edx
复制代码 虚表的位置:
- 080486ce <_ZN4baseC1Ev>:
- 80486ce: 55 push %ebp
- 80486cf: 89 e5 mov %esp,%ebp
- 80486d1: ba d0 87 04 08 mov $0x80487d0,%edx ; 这里
- 80486d6: 8b 45 08 mov 0x8(%ebp),%eax
- 80486d9: 89 10 mov %edx,(%eax)
- 80486db: 5d pop %ebp
- 80486dc: c3 ret
- 80486dd: 90 nop
- 080486de <_ZN5sbaseC1Ev>:
- 80486de: 55 push %ebp
- 80486df: 89 e5 mov %esp,%ebp
- 80486e1: ba f0 87 04 08 mov $0x80487f0,%edx ; 这里
- 80486e6: 8b 45 08 mov 0x8(%ebp),%eax
- 80486e9: 89 10 mov %edx,(%eax)
- 80486eb: 5d pop %ebp
- 80486ec: c3 ret
- 80486ed: 90 nop
- 80486ee: 90 nop
- 80486ef: 90 nop
复制代码 |
|