假设我在C++中有一个数组:
double* velocity = new double[100];
Run Code Online (Sandbox Code Playgroud)
使用GDB命令行,我可以使用以下命令查看此数组:
> print *velocity @ 100
Run Code Online (Sandbox Code Playgroud)
它将打印一个格式良好的列表,列出数组中的所有double值.
但是,在使用Xcode调试器时,它所做的最多就是将其视为指向单个double值的指针,并在变量列表中显示velocity [0].
这使得它成为一个真正的PITA来调试包含大型动态分配数组的程序.必须有一些方法来告诉Xcode"这是一个指向长度为100的数组的指针",并让它显示这样的东西.有人知道这是什么吗?
主题说这一切真的......有没有适合Xcode调试器的好教程?我发现了一些东西,但没有什么全面的或足够深的东西.我现在的问题是这......
#0 0x90d9c688 in objc_msgSend
#1 0x30506515 in NSPopAutoreleasePool
#2 0x30901697 in _UIApplicationHandleEvent
#3 0x32046375 in PurpleEventCallback
#4 0x30245560 in CFRunLoopRunSpecific
#5 0x30244628 in CFRunLoopRunInMode
#6 0x308f930d in -[UIApplication _run]
#7 0x309021ee in UIApplicationMain
#8 0x00001ff8 in main at main.m:14
Run Code Online (Sandbox Code Playgroud)
......结合这......
0x90d9c688 <+0024> mov 0x20(%edx),%edi
Run Code Online (Sandbox Code Playgroud)
...还有这个...
EXC_BAD_ACCESS
Run Code Online (Sandbox Code Playgroud)
......没有多大帮助.或者说,真的.我正在尝试评论代码行,必须有更好的方法.
谢谢
更新:我想也许我的发泄有点分散了真正的问题,虽然提示有助于解释一些事情.我真正得到的不仅仅是对上述内容的解释,而是一般使用调试器.我通常遇到的问题是:
我知道这些是广泛的,可能应该单独询问,但我不想把这些可能已在其他地方记录的主题弄乱到SO空间.
我还注意到这里有一个几乎重复的问题:什么是Objective-c调试技巧?