当前位置: 技术问答>linux和unix
gdb中单调试的问题
来源: 互联网 发布时间:2015-05-28
本文导语: Gdb单步调试的问题 在调试一个程序中,编译和执行都可以通过(不是我自己写的东西)。但我想看看这个程序到底是怎么回事,用单步去跑,可是发现出现问题。如下所示: for(i=0;icodec_info_state = CSTATE_FOUND; //line ...
Gdb单步调试的问题
在调试一个程序中,编译和执行都可以通过(不是我自己写的东西)。但我想看看这个程序到底是怎么回事,用单步去跑,可是发现出现问题。如下所示:
for(i=0;icodec_info_state = CSTATE_FOUND; //line 1
codec = avcodec_find_decoder(st->codec.codec_id); //line 2
ret = avcodec_decode_video(&st->codec, &picture); //line 3
if (codec) {
……..
}
}
单步执行的时候却是这样的;(方便见,只用line表示)
line 1
line 2
line 1
line 2
line 1
line 2
line 1
line 2
line 3
真的比较糊涂了。而且用step,next都一样的结果(前三对line1 line 2看起来都没有执行任何东西).
开始我还以为是平台问题,可写了一个小程序后,调试起来是正常的(,
所以就不明白到底问题出在哪里了?
我的平台是用vmware上的redhat linux 9.
在调试一个程序中,编译和执行都可以通过(不是我自己写的东西)。但我想看看这个程序到底是怎么回事,用单步去跑,可是发现出现问题。如下所示:
for(i=0;icodec_info_state = CSTATE_FOUND; //line 1
codec = avcodec_find_decoder(st->codec.codec_id); //line 2
ret = avcodec_decode_video(&st->codec, &picture); //line 3
if (codec) {
……..
}
}
单步执行的时候却是这样的;(方便见,只用line表示)
line 1
line 2
line 1
line 2
line 1
line 2
line 1
line 2
line 3
真的比较糊涂了。而且用step,next都一样的结果(前三对line1 line 2看起来都没有执行任何东西).
开始我还以为是平台问题,可写了一个小程序后,调试起来是正常的(,
所以就不明白到底问题出在哪里了?
我的平台是用vmware上的redhat linux 9.
|
建议使用gcc3.3.x和gdb6.0升级一下再试试,redhat9.0自带的gcc和gdb有问题!