【问题标题】:Swift -is there a way to trigger a programmatic breakpoint to continue after it stopsSwift - 有没有办法触发程序断点在停止后继续
【发布时间】:2023-03-05 21:39:01
【问题描述】:

this answer 之后,我能够在代码中创建断点。

func sayHello() {

    raise(SIGTRAP) // programmatic breakpoint
    kill(getpid(), SIGSTOP)  // programmatic breakpoint

    print("say hello")
}

使用这两个函数中的任何一个都会停止执行,并且永远不会打印“say hello”。

与我能够以编程方式创建断点的方式相同,是否有一种方法可以以编程方式创建其他内容,以便在命中这两个断点中的任何一个后继续执行?

【问题讨论】:

  • 让 LLDB 创建一个真正的断点以正确的方式执行此操作不是更好吗?这种断点可能非常强大,包括在打印后根据需要自动继续。
  • 那些不是断点 - 您正在终止您的应用程序。你不能从那一点继续。即使可以,将执行什么代码来执行“继续”-您已停止执行。你想做什么?您可以在 Xcode 中创建断点,执行一些操作并自动继续。
  • @Paulw11 哦,我不知道它终止了应用程序,答案说这是一个“代码中”断点(看看它)。谢谢你提供的详情。我在使用 fg 通知的 avcapturesession 时遇到问题。它仅在我在 bg 通知上设置断点时触发。这真的很奇怪。我的想法只是使用程序断点并让它继续。不确定它是否会起作用,但值得一试。
  • @matt 你能把你的建议的链接发给我吗?
  • 就这么做吧。在代码编辑器中,放置一个断点,双击编辑它,告诉它打印并继续。这是微不足道的。

标签: ios swift breakpoints


【解决方案1】:

您正在寻找的功能是内置的。这是一个打印“here”并继续的断点:

【讨论】:

  • 快速提问,实时应用中的断点会发生什么情况,它们仍然会触发还是被忽略?我主要担心的是,如果我继续使用它,断点是否仍会触发(我希望它触发)。
  • 不,断点仅在调试器下运行时执行。如果您遇到与时间相关的问题,您需要解决而不是尝试做这样的事情
  • 我同意,我觉得这是一个 x-y 问题。您应该关注实际问题,而不是断点。 :)
  • @Paulw11 感谢您的帮助。我不确定断点和实时应用程序。你说得对,这是断臂上的创可贴。幸运的是我解决了问题。保重!
  • @matt 这绝对是一个临时修复。我解决了主要问题并能够继续前进。感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-23
  • 2021-03-13
相关资源
最近更新 更多