问题描述
C写python扩展,在执行208行之前拨错。黄色小箭头表示“This is the next statement will be executed”,所以问题出在memcpy这行,然而这是C标准库的函数,不太可能出问题。尝试自己写了一个函数,代替memcpy,报错一样,所以问题不在这里。
找Bug
但是同一个project中也有其他.c文件使用了memcpy,是没有问题的。
到汇编代码看看,非法访问的地址是怎么产生的。
报错的地方是上面这里,访问寄存器r15所存的地址报错,r15的地址非法。
在寄存器监视器中,可以看到r15的值,0x000000001DF42200,; 在64位机器上,16G内存,编译出的64位代码,作为一个地址,高32位全0是很不正常的。这说明