使用GDB调用VTable函数

使用GDB调用VTable函数,gdb,Gdb,我试图使用GDB调用一个函数,这个函数属于一个实例化类。我没有可用的调试符号,尽管我有一个指向class/vtable和函数偏移量的指针 可以调用这样的函数吗?当然可以。您始终可以按地址调用函数。最简单的方法是将指针转换为正确的类型,或者转换为“根据ABI足够正确”的类型。例如: set $fun = (int (*) (void *)) 0xADDR call $fun ("whatever")

我试图使用GDB调用一个函数,这个函数属于一个实例化类。我没有可用的调试符号,尽管我有一个指向class/vtable和函数偏移量的指针


可以调用这样的函数吗?

当然可以。您始终可以按地址调用函数。最简单的方法是将指针转换为正确的类型,或者转换为“根据ABI足够正确”的类型。例如:

set $fun = (int (*) (void *)) 0xADDR
call $fun ("whatever")