看板Programming
标 题Re: [问题] gdb on C
发信站政大狂狷年少 (Fri Aug 25 20:03:39 2006)
转信站ptt!ctu-reader!Spring!news.nctu!news.ntu!news.ee.ttu!netnews.csie.nctu
※ 引述《[email protected] (真人)》之铭言:
> 最近用 gdb 来 debug C 发生一些问题, 就是它会乱跑
> case 1: 用 watch 来看一个 variable, 却发现他停在一个 if statement.
> ( if ( a ) { ... } )
> 它确实回应 old value: 0, new value: 15
> case 2: 先 break 在某处, 再用step 进入function,
> 再依次 next, 照说应该逐行执行, 例如 line 12, line 13 ...
> 结果 current line 一直乱跳, line 13, line 12, line 14
> line 13 是一个 printf(), 过了也没print出来,
> 到了line 15时又乎然跳出printf() 的结果,
> 到底是怎样的问题, 困扰甚久, 希望有人能给予提示,
> 多谢
不要下最佳化参数就不会这样了,
因为 compiler 会做一些 instruction scheduling,
你用 -g -S 输出 .s 组语档看就会知道,
loc 假指令後面会跟着 source code 的行号,
下最佳化参数以後那个数字就有可能往回跳。
--
Name: Tseng, Ling-hua E-mail Address:
[email protected]
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Undecided
Homepage:
https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │
* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮
< IP:140.119.164.16 > ╰─╮
╚╦═╦╝ ╰
* From:61-230-236-188.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不驯;属於年少的轻狂色彩 ◎
1F:推 indept:多谢, 已解决 171.64.92.135 08/26 05:14