gpt4 book ai didi

objective-c - 快速找到 gdb 中断言的线程的方法?

转载 作者:行者123 更新时间:2023-12-03 16:56:13 26 4
gpt4 key购买 nike

当我的 Cocoa 应用程序在代码中遇到断言时,gdb 按预期给出提示,但它永远不会(好吧,很少)在正确的线程中。

我知道我可以使用 Xcode 的 GUI 调试器,这会减轻一些痛苦,但我想一定有一个我不知道的 gdb 命令行技巧。

除了更改每个线程并发出 where 之外,是否有更简单的方法来查找断言的线程?

最佳答案

尼古拉建议“线程应用所有 bt”。还有“信息线索”,有时可以帮助您以更少的冗长方式找到您想要的线索。

假设,“信息线程”没有显示您想要的内容,并且您被迫梳理所有线程的堆栈跟踪。如果您的进程有很多线程(在某些程序中很容易有数百个线程),这可能会很痛苦。您可以将每个线程显示的帧数限制为更容易处理的值(例如 5 帧)

(gdb) thread apply all where 5

但即使这样也很难梳理,因为您可能必须不断点击寻呼机提示来寻找您想要的内容,并且很容易错过目标。在这种情况下,我发现启用日志记录和禁用寻呼机的组合非常有用

(gdb) set height 10000
(gdb) set logging on
(gdb) thread apply all where 5
(gdb) shell

现在检查 gdb.txt 并找到您的线程。

关于objective-c - 快速找到 gdb 中断言的线程的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1647809/

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