最近碰到了个进程异常中止的问题,core 文件的 gdb 结果看来好像函数的代码区内存被滥用了,类似于如下
(gdb) disass /mr Delete
Dump of assembler code for function Delete():
151 {
→. 0x556ec6b0 <+0>:. 00. 00. add. %al,(%eax)
0x556ec6b2 <+2>:. 00 00. add. %al,(%eax)
...
}
之后的值都是 0x00,统计了下前后总共有 4096 字节的代码区内存被置为 0x00,网上查了下没有提到关于代码转为机器码后的存放问题,是和静态变量它们放在一起还是单独的区域,求各位了解的大佬赐教>:-<
(gdb) disass /mr Delete
Dump of assembler code for function Delete():
151 {
→. 0x556ec6b0 <+0>:. 00. 00. add. %al,(%eax)
0x556ec6b2 <+2>:. 00 00. add. %al,(%eax)
...
}
之后的值都是 0x00,统计了下前后总共有 4096 字节的代码区内存被置为 0x00,网上查了下没有提到关于代码转为机器码后的存放问题,是和静态变量它们放在一起还是单独的区域,求各位了解的大佬赐教>:-<