lldb没有“通过打开AppleEvent启动”功能,因此不能直接执行此操作。 但你可以使用lldb的“attach wait”功能,在应用启动初期捕捉应用。你可以在Xcode中这样做:在应用目标的Run模式的Info选项卡中打开“Wait for the executable to be launch”,然后点击Run按钮,进入Finder,双击其中一个文件启动应用。 如果你的系统负载不是很重,lldb通常会在应用启动的早期就停止,通常是在处理open事件之前,Xcode会自动继续运行应用,所以它应该会一直运行到崩溃。 如果由于某种原因lldb没有足够早地附加,请编辑应用程序的main函数,并在最顶部输入:
2条答案
按热度按时间tgabmvqs1#
lldb没有“通过打开AppleEvent启动”功能,因此不能直接执行此操作。
但你可以使用lldb的“attach wait”功能,在应用启动初期捕捉应用。你可以在Xcode中这样做:在应用目标的Run模式的Info选项卡中打开“Wait for the executable to be launch”,然后点击Run按钮,进入Finder,双击其中一个文件启动应用。
如果你的系统负载不是很重,lldb通常会在应用启动的早期就停止,通常是在处理open事件之前,Xcode会自动继续运行应用,所以它应该会一直运行到崩溃。
如果由于某种原因lldb没有足够早地附加,请编辑应用程序的main函数,并在最顶部输入:
这样,您的应用将在处理open事件之前停止启动,从而为lldb提供附加时间。附加后,在调试器中暂停应用,选择包含此main函数的线程和框架,转到lldb控制台并执行以下操作:
然后继续。现在您的应用应该完成启动,处理打开事件并崩溃到调试器中。
js5cn81o2#
作为吉姆回答的补充:如果应用程序通过
你可以像往常一样使用Xcode调试你的应用程序,并在你开始处理那个事件的行上设置一个断点(或者如果它在到达那个点之前崩溃了,就在开始处设置断点)。2设置好后,进入Finder并打开文件。
请注意,双击它将启动默认应用程序,因此如果您的调试版本不是默认版本,您必须选择“打开方式〉其他..."。