我正在開發一個使用混合Obj-C和C++的iPhone應用程序。似乎有時候,從Obj-C文件跨步到C++文件時,gdb報告的各個字段的值完全是假的。例如,在一個方法中:Xcode中的GDB只是flakey?
int count = 1;
對(INT I = 0;我<計數; ++ⅰ){
int x = 0; // put a breakpoint here to see how many times it gets hit.
}
在這個例子中,有時GDB將報告爲 '計數' 比以外的值'1'。例如,它可能是126346。但是,單步執行代碼時,循環僅迭代一次,表明'count'的值實際上是期望值。
我是Xcode的新手。我可能只是缺少一些基本的東西但它很難懷疑你的工具。有沒有人在這方面看到過奇怪的事情?解決了嗎?
我同意當調試器告訴你count的值是一個驚人的大值時,未初始化(或損壞的)內存肯定是需要查找的東西,但是循環只迭代一次清楚地表明gdb報告的值和執行期間代碼使用的內容不一致。 – Eric 2010-01-05 05:44:25
它取決於您何時輸出以查看值。 Nithin在他的回答中有很好的例子。 – 2010-01-05 08:13:27