我使用GDB調試C程序,但是我發現GDB執行一些代碼兩次。GDB調試中的問題
例如,
....
stream_t *s = stream_CommonNew(VLC_OBJECT(p_access));
stream_sys_t *p_sys;
if(!s)
return NULL;
s->p_input = p_access->p_input;
s->psz_path = strdup(p_access->psz_path);
....
gdb調試,
292 stream_t *s = stream_CommonNew(VLC_OBJECT(p_access));
Missing separate debuginfos, use: debuginfo-install dbus-libs-1.2.16-9.fc12.i686 libcap-ng-0.6.2-3.fc12.i686
(gdb) next
295 if(!s)
(gdb)
292 stream_t *s = stream_CommonNew(VLC_OBJECT(p_access));
(gdb)
295 if(!s)
(gdb)
298 s->p_input = p_access->p_input;
(gdb)
299 s->psz_path = strdup(p_access->psz_path);
(gdb)
298 s->p_input = p_access->p_input;
(gdb)
299 s->psz_path = strdup(p_access->psz_path);
我很困惑。你能解釋爲什麼嗎?
感謝
您是否啓用了編譯器優化? – 2011-04-29 08:20:01
@Oli Charlesworth:是的,我認爲它已啓用。 – JavaMobile 2011-05-03 04:01:36