回文章列表
作者WalkingIce.bbs@ptt.cc ( 殺手哥吉拉 13) 看板: linux
標題Re: [問題] gdb/strace 一問
時間批踢踢實業 (2008/10/01 Wed 10:54:04)
※ 引述《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
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻