2008年,杰夫写了一篇关于负责任地崩溃的帖子.本着这种精神,我试图在我的崩溃错误对话框中添加一个"发送错误报告"按钮.这个想法是用户可以轻松发送已经包含版本信息,操作系统信息,堆栈跟踪的完整错误报告......此信息应放在邮件正文或附件文件中.
不幸的是,从.NET应用程序发送这样的电子邮件似乎并非易事:
有没有人找到一个安全可靠的解决方案来做到这一点?
我在Qt应用程序中找到了这样的崩溃日志,不知道如何实现qt应用程序来获得如此好的崩溃报告?
//=====================================================
Crash Time: Fri Aug 20 15:05:51 2010
Tool Version: 1.6 (08/21/09)
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 06706000 00:01FED9E4
Registers:
EAX:067689A0
EBX:00000000
ECX:067689A0
EDX:026304C0
ESI:00000012
EDI:01FEF018
CS:EIP:001B:06706000
SS:ESP:0023:01FEE4B4 EBP:01FEE4CC
DS:0023 ES:0023 FS:003B GS:0000
Flags:00010206
Call stack:
Address Frame
06706000 01FEE4B0 0000:00000000
39DE15ED 01FEE4CC QWidget::reparent+2D
39E7F560 01FEE6F4 QMenuBar::calculateRects+2D0
39E7E4B1 01FEE708 QMenuBar::performDelayedContentsChanged+41
39E7E600 01FEE714 QMenuBar::performDelayedChanges+20
39E7FF24 01FEE88C QMenuBar::drawContents+24
39E4162E 01FEEA88 QFrame::paintEvent+3BE
39DE060E 01FEEB00 QWidget::event+39E
39D56AE8 01FEEB38 QApplication::internalNotify+1E8
39D56785 01FEEC68 QApplication::notify+865
39D0A89B 01FEEC7C QApplication::sendSpontaneousEvent+3B
39D13DEF 01FEED2C QApplication::winMouseButtonUp+20DF
39D1095E 01FEEFB0 QApplication::winFocus+FBE
7E418734 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,其中在ASINetworkQueue中添加了许多操作.操作基本上用于从服务器获取图像,然后成功完成在表视图单元格中设置图像.
一切都很好.我有一个按钮,一个表视图单元格,另一个视图控制器打开.
在另一个视图上有一个十字按钮,我可以在其上弹出该视图控制器.现在,当单击交叉按钮时,应用程序会在那里崩溃,有时当返回到上一个视图并滚动我的表视图时它会崩溃.
当我看到崩溃日志时,我发现无论线程崩溃,下面的代码都会出现.有时它是崩溃的thread2,有时它是崩溃的线程12,有时它是崩溃的线程6但是该线程内的代码是相同的,如下所示.
Thread 11 name: Dispatch queue: com.apple.root.default-overcommit-priority
Thread 11 Crashed:
0 Foundation 0x357320b2 0x3569e000 + 606386
1 Foundation 0x356add56 0x3569e000 + 64854
2 Foundation 0x356adb94 0x3569e000 + 64404
3 Foundation 0x35731f48 0x3569e000 + 606024
4 Foundation 0x356add56 0x3569e000 + 64854
5 Foundation 0x356adb94 0x3569e000 + 64404
6 Foundation 0x35731ebc 0x3569e000 + 605884
7 libdispatch.dylib 0x3698c9f6 0x36981000 + 47606
8 libdispatch.dylib 0x3698f21e 0x36981000 + 57886
9 libdispatch.dylib 0x3698cb70 0x36981000 + 47984
10 libdispatch.dylib 0x3698d76c 0x36981000 + 51052
11 …Run Code Online (Sandbox Code Playgroud) objective-c crash-reports asihttprequest event-dispatch-thread ios
我通常不想要求SO帮助理解我的崩溃报告,但是(a)我可以从这里的专家那里学到很多关于阅读崩溃报告的知识,并且(b),我意识到我对导航的了解不多正如我所希望的那样流动(这部分特定于我认为的崩溃报告).
所以我希望有人遇到同样的问题,可以帮助我理解为什么我的应用程序崩溃了.
它有时只会崩溃,这就是为什么它是断断续续的.但是,当它崩溃时,它会在同一个地方崩溃,并具有相同的堆栈跟踪(如下所示).
现在我看到它在cmdPressed中崩溃了(这个方法中有很多代码),但是我很难理解比这更深的东西.
从阅读下面的崩溃报告,有没有人有任何建议,为什么我的应用程序崩溃?为什么它可能不一致?
Thread 0 Crashed:
0 libobjc.A.dylib 0x344dd5aa _objc_msgSend + 10
1 UIKit 0x3374458d -[UIViewController loadViewIfRequired] + 365
2 UIKit 0x33799133 -[UIViewController contentScrollView] + 27
3 UIKit 0x33799079 -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 29
4 UIKit 0x33798f5d -[UINavigationController _layoutViewController:] + 33
5 UIKit 0x33798e81 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 273
6 UIKit 0x337985c1 -[UINavigationController _startTransition:fromViewController:toViewController:] + 65
7 UIKit 0x337984a9 -[UINavigationController _startDeferredTransitionIfNeeded:] + 325
8 UIKit 0x337e54b1 -[UINavigationController defaultFirstResponder] + 129
9 UIKit 0x33797849 -[UIResponder(Internal) _deepestDefaultFirstResponder] + 25
10 …Run Code Online (Sandbox Code Playgroud) 我试图将崩溃报告从我的应用程序发送到我的域或邮件但仍然失败.
为了通过邮件获取崩溃报告,我做到了
@ReportsCrashes(
formKey = "",
mailTo = "abc@gmail.com"
)
Run Code Online (Sandbox Code Playgroud)
响应是,发送文件1372758321000-approved.stacktrace
要在我的域中获取崩溃报告,我做到了
@ReportsCrashes(
formKey = "",
formUri = "http://www.abc.com/test1"
)
Run Code Online (Sandbox Code Playgroud)
响应是,发送文件1372856882000-approved.stacktrace无法发送崩溃报告1372856882000-approved.stacktrace org.acra.sender.ReportSenderException:通过Http POST发送FORM报告时出错
任何帮助对我都很方便,并表示赞赏.
由于Crashlytics不能在开箱即用的可穿戴应用程序上运行,我正在寻找一种拦截和报告运行时抛出的任何潜在异常的最佳方法.我想知道为什么他们没有被自动报告给Google Play开发者控制台?
谷歌已经宣布未来的Android Wear更新将内置Wi-Fi支持,但即便如此,并非所有设备都将配备足够的硬件.
在这种情况下,我最初的想法是创建一个子类Application并实现它Thread.UncaughtExceptionHandler.然后,每个例外都必须编组并发送到手机,使用MessageApi.WearableListenerService手机上的扩展将收到一条消息,解组异常并将其传递给Crashlytics.
但是,这提出了一些问题.可穿戴设备和手机之间的蓝牙连接存在中断风险,因此所有错误都应排队并存储在可穿戴设备的文件系统中.
对于简单的崩溃报告来说,这似乎有些过分.有更简单的方法吗?
从最新版本开始,我总是在尝试将构建上传到Crashlytics时收到以下错误消息.
存档分布错误:-3
Could not upload the distribution. The operation couldn't be completed. (HTTP error 422.)
我尝试过以下方法:
我刚刚将Firebase添加到我的应用程序中,并想要使用Crash控制服务和Google Analytics.一切都很好,直到我从主页按钮关闭我的应用程序,然后我再次访问它.在那之后,我的应用程序完全冻结,任何响应,任何错误,我可以从我的logcat获得的唯一日志是:
01-01 15:55:40.600 1236 1262 W BroadcastQueue: Timeout of broadcast BroadcastRecord{fb70722 u0 com.google.firebase.INSTANCE_ID_EVENT} - receiver=android.os.BinderProxy@b6695b3, started 60009ms ago
01-01 15:55:40.600 1236 1262 W BroadcastQueue: Receiver during timeout: ResolveInfo{7bc7770 com.bq.camerabq/com.google.firebase.iid.FirebaseInstanceIdInternalReceiver m=0x0}
01-01 15:55:40.647 1236 1262 I ActivityManager: Skipping duplicate ANR: ProcessRecord{ce79b34 8173:com.bq.camerabq/u0a96} Broadcast of Intent { act=com.google.firebase.INSTANCE_ID_EVENT flg=0x14 cmp=com.bq.camerabq/com.google.firebase.iid.FirebaseInstanceIdInternalReceiver (has extras) }
Run Code Online (Sandbox Code Playgroud)
我第一次启动应用程序时也出现此错误,但我在此帖中看到它总是发生,是Firebase常见错误(无法读取模块... Firebase):
01-01 16:18:33.155 2149 2149 D FirebaseApp: Initialized class com.google.firebase.auth.FirebaseAuth.
01-01 16:18:33.163 2149 2149 D FirebaseApp: Initialized class com.google.firebase.iid.FirebaseInstanceId.
01-01 16:18:33.167 2149 2186 E DynamiteModule: …Run Code Online (Sandbox Code Playgroud) android crash-reports android-lifecycle firebase android-gradle-plugin
好.我在最新版本的Xcode,macOs,一切都在更新.我刚刚将一个新版本上传到TestFlight,突然间没有崩溃报告显示在Organizer中.
我知道我们遇到了崩溃,因为我的测试人员向我展示了他的手机 - 我让他进入隐私设置并启用"与开发人员共享分析"选项,就像Apple在他们的文档中所说的那样.
这就是我所看到的,尽管我的一个测试人员发生了多次崩溃,等待了9个多小时后,它也通过了:
奇怪的是我的上一次构建生成了完整的崩溃报告,这很棒.我刚刚退休了这个版本,但新版本没有生成报告.
这是我的方案设置,如果这改变了什么,我是新来测试飞行碰撞测试:
我在这做错了什么?
昨天,我在Xcode的Organizer的Crash Log部分有两个崩溃报告.
今天,我的Crashes部分是空的,并且缺少崩溃报告.
(管理器的"崩溃日志"部分的空状态)
Xcode说,
"过去两周没有针对此版本报告崩溃日志"
但我需要访问昨天才出现的旧崩溃报告.
如何访问旧报告?
crash-reports ×10
ios ×4
android ×3
crashlytics ×2
objective-c ×2
xcode ×2
.net ×1
acra ×1
c# ×1
crash ×1
crash-dumps ×1
email ×1
exception ×1
firebase ×1
iphone ×1
qt ×1
testflight ×1
wear-os ×1