看板Linux
标 题Re: [问题] gdb/strace 一问
发信站虎尾科大寻梦园 (Tue Sep 30 23:13:06 2008)
转信站ptt!ctu-reader!news.nctu!NFU_BBS
※ 引述《[email protected] (mystea)》之铭言:
> 我现在在debug的程式, 能compile,
> 能执行, 但是不会做我要他做的事.
> 最糟糕的是, 当他结束时, gdb告诉我Program exited normally.
> 因为如此, 我好像没有办法知道他是从那一行离开的.
> 有办法可以用gdb知道吗?
> 我还使用了strace, 结果有找到程式结束执行前的call:
> munmap(0xb7fde000, 4096) = 0 (这行停了好久)
> 然後我打enter, 隔一阵子吐出了很多行, 最後
> exit_group(o) = ?
> Process 15004 detached
> 结束.
> 请问这个资讯要怎麽跟我的原始码扯上关系呢?
compile 的时候有加 -g 参数吗? ex: gcc -g -o 123 123.c
有 -g 才会有 debug info
gdb abc
(gdb) b main
(gdb) r
(gdb) c
Program exited normally
b 是 break 的意思,main 就是在 main 断点,r 是 run,
所以到 main 的地方就会先停下来,此时可以 print a,代表 print a 变数
c 是 continue 继续执行,直到这中间有 break 或者跑到程式结束
--
╭───╮╭───╮ ╭───╮ ┌□
│██◣█
│ ████
│ ██ █
.寻找今晚属於你的梦境. └┤
│████
│ ██
│ ██ █
╭──────────────────╯
│████
│ ████
│ ██ █
│寻梦位址:61-229-217-116.dynamic.hinet.ne
│██◥█
│ ██
│ ████
│国立虎尾科技大学.寻梦园 bbs.nfu.edu.tw
╰───╯╰──╯ ╰───╯ ╰────────────────────