gpt4 book ai didi

ios - 在 Xcode 中,有没有办法绕过一行或多行的 "All Exceptions"断点?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:42 27 4
gpt4 key购买 nike

我被这行代码慢慢逼疯了:

NSDictionary* rectangle3FontAttributes = @{NSFontAttributeName: [UIFont fontWithName: @"TrajanPro3-Regular" size: 18], NSForegroundColorAttributeName: theCoverLogoColor, NSParagraphStyleAttributeName: rectangle3Style};

...由于某种原因导致内部异常。程序继续运行没有问题,但我的异常断点每次都会捕获它,导致视口(viewport)更改我正在查看的文件并要求我在每次...单个...运行时按“继续”。

是否有 pragma 或其他东西可以绕过几行异常断点?

仅供引用,它甚至不是 NSException。它在调用堆栈中列为 __cxa_throwTFFileDescriptorContext(char const *)

调用

最佳答案

如果你不调试 C++ 代码,或者只是不关心 C++ 异常,只打开 ObjC 异常,那么你不会命中这个。

如果这样做不行,可以在 lldb 中编写基于 Python 的断点命令(尽管您还不能将它们存储在断点编辑器中。)创建一个重新启动基于调试器的 Python 命令非常容易在当前停止的调用者上。文档中有一个简单的基于 Python 的断点命令示例:

http://lldb.llvm.org/python-reference.html

你会想做这样的事情:

def AvoidTTFileDescriptorContext(frame, bp_loc, dict):
parent = frame.thread.frames[1]
if parent.name == "TFFileDescriptorContext":
return False
else:
return True

把这个函数放在 ~/lldb_bkpt_cmds.py 中。

异常断点是一个普通的断点,所以如果你这样做:

(lldb) break list

您可以在 Xcode 控制台中找到它。假设它是断点 1,然后执行:

(lldb) command script import ~/lldb_bkpt_cmds.py
(lldb) break command add -F lldb_bkpt_cmds.AvoidTTFileDescriptorContext 1

然后 Xcode 将在遇到此断点并且调用者的名称为 TFFileDescriptorContext 时自动继续。

关于ios - 在 Xcode 中,有没有办法绕过一行或多行的 "All Exceptions"断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30208409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com