相关疑难解决方法(0)

使用Xcode调试器查看动态分配的数组?

假设我在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的数组的指针",并让它显示这样的东西.有人知道这是什么吗?

c++ macos xcode gdb

21
推荐指数
3
解决办法
2万
查看次数

哪里有关于如何正确使用Xcode调试器的好教程?

主题说这一切真的......有没有适合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)

......没有多大帮助.或者说,真的.我正在尝试评论代码行,必须有更好的方法.

谢谢

更新:我想也许我的发泄有点分散了真正的问题,虽然提示有助于解释一些事情.我真正得到的不仅仅是对上述内容的解释,而是一般使用调试器.我通常遇到的问题是:

  • 当我跳过或进入时,为什么调试器有时会从源代码视图转到(我假设的)汇编代码?有没有办法让我一直同时看到两者?
  • 我是否应该在汇编代码中寻找任何具体内容,或者在特定情况下可以提供哪些帮助?
  • 看起来断点允许操作,所以我很好奇如何使用它而不是用NSLog语句来编写代码.

我知道这些是广泛的,可能应该单独询问,但我不想把这些可能已在其他地方记录的主题弄乱到SO空间.

我还注意到这里有一个几乎重复的问题:什么是Objective-c调试技巧?

debugging xcode

6
推荐指数
1
解决办法
6831
查看次数

标签 统计

xcode ×2

c++ ×1

debugging ×1

gdb ×1

macos ×1