tornado跟踪库代码时,代码错位怎么办?

pensir   2008-3-21 15:00 楼主
最近用tornado跟踪自己的.a库代码,老是出现代码错位跟踪的情况?
比如原本光标要跳到下一行的,却跳回去跟踪过的代码,有时候出现反复执行情况,还好出行空行处跟踪?
不知道什么原因?

回复评论 (9)

支持一下
点赞  2008-3-23 17:25
主要是符号表错位了。
一个呢确认编译的时候加了-g选项了,另一个就是在代码里不要出现中文的注释,出现中文注释的情况下很容易出现符号表错位的。尤其是第一行绝对不能出现中文的。
点赞  2008-3-24 22:37
可是我的代码没有中文注释亚,第一行也没有中文的,不知道怎么回事?
点赞  2008-4-2 22:46
主要的就是要编译.a的时候必须加-g选项,还有不能有unicode的字符,包括汉字,注意一下是不是有什么标点符号之类的。
不行的话,先把源代码都加入工程中编译生成,跟踪看看有没有问题,然后再编译成.a
点赞  2008-4-2 23:14
补充两点:
1.有时候,源码不是最新的。要保证全部代码重新编译过。
2.优化选项可能导致执行顺序和C源码不一致。
点赞  2008-4-3 10:23
谢谢您的回复。今天跟踪一般代码时,比如
...........
    snmpTraceLevel = traceLevel;      

    (void) taskDeleteHookAdd ((FUNCPTR) snmpdTaskDelete);

    if (snmpGlobalsInit () == ERROR)
        {
        return (ERROR);
.........
上述代码中,本来执行到第2行时,突然跳到第1行处执行了,不知道怎么回事,我在c/c++compiler处加-g选项:
-g -mcpu=pentium -march=pentium -ansi -nostdlib -fno-builtin -fno-defer-pop -I. -
怎么擦看是否有unicode的字符亚?
点赞  2008-4-3 10:29
首先保证你的.C和.A的一致性,就是说你的 .A是由当前.C生成的。
再次,取消编译过程中的优化选项,选为NONE,应该就没有问题了
点赞  2008-4-3 14:22
关注...
点赞  2008-4-24 17:09
lz要干嘛?
点赞  2008-4-30 17:34
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复