怎样通过vxWorks的WDB代理获得x86的指令指针寄存器?
我想改造一个交叉gdb,它与wdb代理通讯调试i386-vxworks目标机程序,gdb从WDB读取i386目标机寄存器时,出了问题。
vxWorks的WDB代理为x86定义了一个结构REG_SET,如下:
typedef struct /* REG_SET - 80x86 register set */
{
unsigned long edi; /* general register */
unsigned long esi; /* general register */
unsigned long ebp; /* frame pointer register */
unsigned long esp; /* stack pointer register */
unsigned long ebx; /* general register */
unsigned long edx; /* general register */
unsigned long ecx; /* general register */
unsigned long eax; /* general register */
unsigned long eflags; /* status register (must be second to last) */
unsigned char *pc; /* program counter (must be last) */
} REG_SET;
其中pc的声明是unsigned char*类型,这是不是说如果通过WDB获得的pc是一个指向目标机内存的指针值?我是通过gdb与wdb通讯获得寄存器值,以获得对目标机程序的控制权,那指针值pc赋给主机端的gdb有没有意义?不吝赐教!谢谢
发表时间:2004年6月5日11:52:33