在 iOS 崩溃报告中获取线程特定信息?

发布于 2024-12-01 05:59:51 字数 680 浏览 2 评论 0原文

我正在使用以下代码从我的 iOS 应用程序获取崩溃报告:

void *frames[128];
int i,len = backtrace(frames, 128);
char **symbols = backtrace_symbols(frames,len);

NSMutableString *buffer = [[NSMutableString alloc] initWithCapacity:4096];

NSBundle *bundle = [NSBundle mainBundle];
[buffer appendFormat:@"PComp version %@ build %@\n\n",
    [bundle objectForInfoDictionaryKey:@"CFBundleVersion"],
    [bundle objectForInfoDictionaryKey:@"CIMBuildNumber"]];
[buffer appendString:@"Uncaught C++ Exception\n"];
[buffer appendString:@"Stack trace:\n\n"];
for (i = 0; i < len; ++i) {
    [buffer appendFormat:@"%4d - %s\n",i,symbols[i]];
}

这只会提供有关当前线程的信息?我怎样才能获得所有线程的堆栈跟踪?

I'm using the following code to get crash reports from my iOS application:

void *frames[128];
int i,len = backtrace(frames, 128);
char **symbols = backtrace_symbols(frames,len);

NSMutableString *buffer = [[NSMutableString alloc] initWithCapacity:4096];

NSBundle *bundle = [NSBundle mainBundle];
[buffer appendFormat:@"PComp version %@ build %@\n\n",
    [bundle objectForInfoDictionaryKey:@"CFBundleVersion"],
    [bundle objectForInfoDictionaryKey:@"CIMBuildNumber"]];
[buffer appendString:@"Uncaught C++ Exception\n"];
[buffer appendString:@"Stack trace:\n\n"];
for (i = 0; i < len; ++i) {
    [buffer appendFormat:@"%4d - %s\n",i,symbols[i]];
}

This will only give information about the current thread? How could I get this stack trace for all threads?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

染年凉城似染瑾 2024-12-08 05:59:51

看看这个问题。

如何循环遍历 iPad 应用程序中的所有活动线程

投票最多的回复实际上解释了您需要做什么。

Take a look at this question.

How To Loop Through All Active Thread in iPad app

The most voted response actually explains what you need to do.

骑趴 2024-12-08 05:59:51

您是否尝试过使用ATOS? (符号地址

Have you tried using ATOS? (Address to symbol)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文