Re: [問題] gdb/strace 一問

看板Linux作者 ( 殺手哥吉拉 13)時間15年前 (2008/10/01 10:54), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串5/6 (看更多)
※ 引述《mystea (mystea)》之銘言: : 不是不肯設breakpoint而是找不到適合的地方. : 因為程式碼很長, 又是別人寫的. 隨便設的結果就是 : 在不需要停的地方停很多次, 出問題是又不知道究竟 : 跑到了那裡. : 難道就沒有辦法知道他是從那一行"正常離開"的嗎? 舉例來說,底下這段程式碼永遠都不會印出 final 的字串 也許對你來說正常離開會是在 final 那邊 但是對寫程式的我而言,我想要的正常離開會在別的地方 (雖然這樣不好) 既然你都可以印出 function call 的 stack 了 直接設在最後一個 function 然後 next 下去不就馬上有答案? #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); int a = rand()%3 + 1; if(a == 1) { printf("first: %d\n",a); return 0; }else if (a == 2) { printf("second: %d\n",a); return 0; }else { printf("third:%d\n",a); return 0; } printf("final\n"); return 0; } -- 我想你會衰成這樣都是我害的 ---- Tizzy Mac 緊張的麥金塔?這是誰(._.?) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.248.182

10/01 17:06, , 1F
問題是在於, strace印出來的function不是程式裡宣告的那些.
10/01 17:06, 1F

10/01 17:08, , 2F
munmap, exit_group這些, 都不是程式作者宣告的...
10/01 17:08, 2F
文章代碼(AID): #18ukPCr2 (Linux)
討論串 (同標題文章)
文章代碼(AID): #18ukPCr2 (Linux)