Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XCode-使用信号调试应用程序_Xcode_Macos_Signals - Fatal编程技术网

XCode-使用信号调试应用程序

XCode-使用信号调试应用程序,xcode,macos,signals,Xcode,Macos,Signals,一旦收到“SIGUSR2”,我的应用程序需要进行一些处理 因此,我使用signal()将系统默认的信号处理程序替换为mime 在XCode中调试时,我在命令行中用“kill-31pid”向应用程序发送信号,然后应用程序在一行代码处停止。在我让它继续运行后,应用程序将在不调用mime的信号处理程序的情况下运行 似乎XCode会吃掉信号本身 在XCode中调试时,我怎样才能使它正确呢?嗯,最近我在用带有信号的代码做一些事情。首先,您需要了解GDB是如何处理信号的。我不确定它是否在文档中,也不确定它是

一旦收到“SIGUSR2”,我的应用程序需要进行一些处理

因此,我使用signal()将系统默认的信号处理程序替换为mime

在XCode中调试时,我在命令行中用“kill-31pid”向应用程序发送信号,然后应用程序在一行代码处停止。在我让它继续运行后,应用程序将在不调用mime的信号处理程序的情况下运行

似乎XCode会吃掉信号本身


在XCode中调试时,我怎样才能使它正确呢?

嗯,最近我在用带有信号的代码做一些事情。首先,您需要了解GDB是如何处理信号的。我不确定它是否在文档中,也不确定它是否在网上。从我记得读过的内容来看,GDB截取了一些信号,以便调试器能够正常工作。这就是你的应用程序无法正常运行的原因

无论如何,我都不是这方面的权威,但在我所看到的代码中,使用信号让我觉得这样做是错误的。iOS SDK具有一系列用于处理进程间通信、任务排序和其他内容的功能。也许你的代码会从一些研发和重新设计中受益,这样你就不需要信号了


只是一个想法:-)

它在XCode之外工作得很好……我找到了一种处理它的方法。暂停应用程序,在XCode GDB cmdline中输入“handle SIGUSR2 nostop”,然后XCode将不会耗尽信号,应用程序可以自行处理目标信号。希望有更聪明的方法!它在Mac OS X上工作,而不是在IOS应用程序上。它看起来像一种守护进程。这里的信号只是用来测试的,但是问题很麻烦。好的,检查一下调试器禁用了什么。但是,从我所读到的内容来看,我认为您不能对此做太多,也不想做太多,因为这可能会使调试器本身不稳定。这是我的理解。