作者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