gcc gdb 调试出现的奇怪现象,有遇到过的吗?

TT大白 发布于 2015/12/18 15:45
阅读 437
收藏 0

450 tmpquestlist = pqlist;
(gdb) n
454 sendbuflen = panaddr - psb;
(gdb) 
452 memcpy(psb, prb, sizeof(MHEAD_T) + tres.qlen);
(gdb) 
454 sendbuflen = panaddr - psb;
(gdb) 
455 while(tmpquestlist)
(gdb) 
454 sendbuflen = panaddr - psb;
(gdb) 
457 //¸謇囈ݽs²ꑯ
(gdb) display sendbuflen
4: sendbuflen = 34
(gdb) n
460 tmprrslist = data;
4: sendbuflen = 34
(gdb)

源码是:
450 tmpquestlist = pqlist;
451 /¸´׆messageµèeadº̱uest²¿·ֵ½ЬӦ˽¾ݵèeadº̱uestא/
452 memcpy(psb, prb, sizeof(MHEAD_T) + tres.qlen);
453 panaddr = psb + sizeof(MHEAD_T) + tres.qlen;
454 sendbuflen = panaddr - psb;
455 while(tmpquestlist)
456 {
457 //¸謇囈ݽs²ꑯ

很奇怪的现象啊,头一次遇到!

gdb 调试单步执行顺序乱了,还缺少了
注释行也在单步调试中显示了

加载中
0
baozhuni
baozhuni
这是因为,被调试的程序的源代码有过改动。所以gdb自然就映射错误了。
T
TT大白
谢谢,这个我还真没想到,不过一般都是先编译,编译后调试,按理应该一样的,我的在windows下写的代码,到linux编译执行的,你说和系统编码方式有关系不,因为我后来把文件修改为unix文件,就没有这样的情况了
返回顶部
顶部