作者ric2k1 (Ric)
看板EE_DSnP
標題[建議] HW1.2.P1 break point @ line 102 的問題
時間Sun Oct 4 23:46:11 2009
看來不少人的 gdb 會讓你的 code 停在奇怪的地方...
如果你下了 b 102 但是他卻停到 line 106 的話,
一個 workaround 就是你改成 b 101 然後再用 next 就可以走到 line 102 了...
這樣子有解決問題了嗎?
92 void
93 PermuteNum::permute(int iBegin)
94 {
95 // base case
96 if (iBegin == (_digit - 1)) {
97 _nPermutes++;
98 cout << _nPermutes << " ";
99 for (int i = 0; i < _digit; i++)
100 cout << _nums[i];
101 cout << endl;
102 return;
103 }
104
105 // Recursive case
106 int idx = iBegin;
107 while (true) {
108 permute(iBegin+1);
109 // find next different digit; break if not found
110 while ((++idx < _digit) && (_nums[idx] == _nums[iBegin]));
111 if (idx < _digit)
112 swap(idx, iBegin);
113 else break;
114 }
115 }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.224.43.28
1F:推 a3785lexx:我剛剛一看到就去試了一下... 10/05 01:07
2F:→ a3785lexx:停到line 115去了囧 10/05 01:08
3F:→ ric2k1:怎麼會這樣呢? 我現在在辦公室, 有人可以拿過來給我看一下? 10/05 10:42
4F:→ ric2k1:gdb 也算是一個很多人在用的 program, 怎麼會有這樣的 bug? 10/05 10:44
5F:→ ric2k1:如果大家不能用 debugger, 接下來作業的問題會很大... 10/05 10:45
6F:推 dryman:除了用next之外,可以用step(會進入子迴圈一步步做) 10/05 11:47
7F:→ dryman:回一篇好了 10/05 11:47
8F:推 mymaydayya:115 +1 10/05 12:01
9F:推 davidkid:我中午下課後可以去辦公室._./ 10/05 12:17
10F:推 a3785lexx:Breakpoint下在line101之後不論是step還是next都會 10/05 13:08
11F:→ a3785lexx:去line 115的樣子...orz 10/05 13:08
12F:→ ric2k1:I am back. will be available after 3:30pm 10/05 15:07
13F:推 davidkid:ok,謝謝教授m(_._)m 10/05 15:10