我有一个用MinGW编译的c ++应用程序,我一直在收到客户的崩溃投诉.因此,除了大量登录可能崩溃的部分(在发布新版本之前)之外,我一直在寻找一个崩溃报告器,它将帮助我在发生错误时找出堆栈跟踪和任何其他有用的调试信息.
是否存在与MinGW应用程序兼容的此类工具?(似乎当时的编译器和崩溃报告策略之间存在密切关系,因此问题).
有没有可以帮助我的Windows工具?该应用程序主要在Windows XP计算机上运行.
能够将信息写入文件足以满足我的目的.然后我可以让我的客户给我发信息.
我一直在研究google-breakpad和SetUnhandledExceptionFilter,但我仍然不知道它们是否会以任何方式有用.其他崩溃报告实用程序,例如crashrpt,是为Visual C++设计的,所以我想用MinGW尝试它们并没有多大意义.
编辑:关于这个主题的一些有用的链接
运行我的应用程序的50%的时间我收到此错误
06-20 12:56:51.183: A/libc(32140): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 32140 (example.www)
Run Code Online (Sandbox Code Playgroud)
我只需重新打开应用程序然后就可以了.但我不知道为什么我收到此错误并且应用程序崩溃了.我正在处理尺寸很大的大图像,大约1200x1200像素并将其设置为背景.我还将该图像用作其他一些活动的位图作为背景.还做一些调用服务器并获取JSON数据.希望我提供足够的信息,因为我不知道该寻找什么...我正在为4.1.2开发
完整的Logcat
06-20 13:02:38.823: W/ActivityThread(4102): Application eu.sexample.www can be debugged on port 8100...
06-20 13:02:38.983: D/dalvikvm(4102): GC_FOR_ALLOC freed 114K, 7% free 12283K/13191K, paused 13ms, total 13ms
06-20 13:02:38.988: I/dalvikvm-heap(4102): Grow heap (frag case) to 18.398MB for 5954576-byte allocation
06-20 13:02:39.008: D/dalvikvm(4102): GC_CONCURRENT freed 1K, 5% free 18096K/19015K, paused 12ms+1ms, total 22ms
06-20 13:02:39.053: D/dalvikvm(4102): GC_FOR_ALLOC freed 0K, 5% free 18097K/19015K, paused 10ms, total 10ms
06-20 13:02:39.088: …Run Code Online (Sandbox Code Playgroud) 我有几个问题:
谢谢.
我收到以下崩溃报告.它们仅出现在iOS 8设备上.请注意以下消息:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'this request has been neutered - you can't call -sendResponse: twice nor after encoding it'
Run Code Online (Sandbox Code Playgroud)
崩溃报告:
Date/Time: 2014-08-31T01:39:15Z
OS Version: iPhone OS 8.0 (12A4345d)
Report Version: 104
Exception Type: SIGABRT
Exception Codes: #0 at 0x1964cb270
Crashed Thread: 0
Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'this request has been neutered - you can't call -sendResponse: twice nor after encoding it'
Last Exception Backtrace:
0 CoreFoundation …Run Code Online (Sandbox Code Playgroud) 我最近收到了来自itunes connect的崩溃报告.实际上这是我从成千上万的用户那里得到的唯一崩溃报告.这是一台iPod4,1设备.有趣的部分是:
Date/Time: 2012-02-27 22:53:27.596 +0800
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Last Exception Backtrace:
0 CoreFoundation 0x338958bf __exceptionPreprocess + 163
1 libobjc.A.dylib 0x303891e5 objc_exception_throw + 33
2 UIKit 0x31259749 -[UIViewController mutableChildViewControllers] + 1
3 UIKit 0x31259349 -[UINavigationController pushViewController:animated:] + 37
4 MyApp 0x000081e5 -[MyListController tableView:didSelectRowAtIndexPath:] (MyListController.m:207)
5 UIKit 0x312d3565 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 945
6 UIKit 0x3134bce7 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 159
Run Code Online (Sandbox Code Playgroud)
当选择表视图中的行并将新视图控制器推入导航时,似乎发生崩溃.根据我的代码,新的视图控制器已经创建,因此发生了崩溃UINavigationController.
它看起来不像我写的代码的错误.我想知道我是否正确?我该如何调试此问题?
我们有一个非常密集的网络应用程序 - 很多活动在谷歌地图上使用自定义标记,并且可能在页面上有很多项目.
iOS上的Safari会间歇性地且不可预测地给出"此网页出现问题,因此重新加载"错误.
大多数情况下,这是在照片输入并通过broswer调整大小后发生的 - 上传尚未发生.
在研究潜在问题时,我发现了以下链接
真正的问题是如何确定崩溃的原因?这种情况永远不会发生在桌面上,所以如果它是iOS限制,内存问题,调整大小问题或其他原因非常困难.
我已将iPhone连接到Mac以在手机上运行Web检查器,但此崩溃只会终止整个过程而不记录任何错误,因此也没有任何帮助.
此外,没有可靠的方法来重现这个问题 - 它只是"有时"发生,并没有关于原因可能的一致特征.
提前致谢.
我试图理解此崩溃报告,但无法理解,因为函数“applySettings()”不是从 init() 调用的,如崩溃报告中所示。Swift 中的“部分申请closure#1”是什么?
这是 init() 函数所需的代码。
public override init()
{
super.init()
discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: [AVCaptureDevice.DeviceType.builtInWideAngleCamera, AVCaptureDevice.DeviceType.builtInDualCamera, AVCaptureDevice.DeviceType.builtInTelephotoCamera, AVCaptureDevice.DeviceType.builtInDualWideCamera,
AVCaptureDevice.DeviceType.builtInTripleCamera,
AVCaptureDevice.DeviceType.builtInUltraWideCamera], mediaType: AVMediaType.video, position: .unspecified)
detectLenses()
checkForDeviceAuthorization()
setZoomParams()
sessionQueue.async { [unowned self] in
self.configureSession()
}
}
Run Code Online (Sandbox Code Playgroud) 我6天前发布了一个新版本.我在iTunesConnect分析中看到了一些崩溃,但崩溃组织者中没有崩溃,我的版本也没有出现在崩溃组织者的"版本"下拉列表中.
通常情况下,崩溃报告发布后需要一两天才能进入Xcode Crashes组织者,而且我已经看到崩溃出现在Xcode Crashes组织器中的时间与iTunesConnect分析网站大致相同.
有趣的是,之前的版本仍然显示在"版本"下拉列表中,我可以看到报告继续为它们涓涓细流.之前版本的崩溃报告急剧下降,大概是因为大多数人已经转移到最新版本.
在新机器上,安装了新的XCode(但链接到同一个开发人员帐户),我看到了相同的行为.也许这是我的开发者帐户的问题?
更新2016.09.01:两个月后,新版本仍未自动显示在版本下拉列表中.下面发布的手动添加它们的解决方法一直很好用,但希望我不必永远这样做.我必须假设这是我本地设置的问题,因为这不会发生在每个人身上.如果你想出一个长期的解决办法,请告诉我.
更新2016.10.13:我最近的版本中的解决方法不起作用.我再次看到ITC崩溃,但在Info.json手动添加该版本的条目后,我看到"此版本没有可用的崩溃信息".
更新二零一六年十月十五日:我想解决办法是继续工作,崩溃报告只是由延迟额外的 48小时.
更新2016.1.20:在某些时候,(可能在12月中旬左右,XCode 8.2?),我开始看到新的版本再次自动出现,并且每次推送构建时都不再需要手动编辑我的XCode配置数据.除了更新XCode之外,我无法想到任何可能"修复"它的方式.
因此,我的应用程序(iOS,Swift 2.2,Xcode 7.3)被Beta App Review团队拒绝了,因为它在发布时很糟糕.
更新得到了App Review团队的回答......它只是在iPad上崩溃,而不是在iPhone上崩溃.
问题是我无法重现这次崩溃.即使在我的3个物理设备(iPhone 4S,iPhone6和iPad Air)上进行干净安装测试,也不通过TestFlight内部测试进行更新(因此与App Review Team正在审核的构建和存档完全相同)
崩溃日志的摘录(从App Review Team收到)(符号化):
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000010032ced8
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 AppName 0x000000010032ced8 MapViewController.viewDidLoad() -> () (MapViewController.swift:210)
1 AppName 0x000000010032cf2c @objc MapViewController.viewDidLoad() -> () (MapViewController.swift:0)
2 UIKit 0x0000000187394b40 -[UIViewController loadViewIfRequired] + 996
Run Code Online (Sandbox Code Playgroud)
MapViewController是UINavigationController的rootViewController,第210行包含: self.view.backgroundColor = UIColor.blackColor()
更新:删除该行并提交另一个版本.相同的崩溃日志,现在崩溃在下一行:imageview.hidden = true
Tried to run in "Release" config directly from …
我一直在努力解决在某些条件下限制Crashlytics网络使用的问题.例如 - 漫游,计量网络等等.
根据SDK文档,我发现只有两个选项可以解决这个问题:
只需不初始化Crashlytics即可在运行时"退出"
发送崩溃报告之前内置用户同意对话框
这个API非常有限,因为:
不初始化Crashlytics不仅会阻止网络访问,还会阻止任何机会Crashlytics在本地保存崩溃报告,以便最终发送事件.更不用说除了粗暴地重写Thread.setUncaughtExceptionHandler之外没有好的方法可以在运行时选择退出
如果在后台发生崩溃,则同意对话框对用户没有任何意义.
我的问题基本上是:我错过了什么?有没有办法限制Crashlytics网络访问?
我的动机来自需要防止我的应用程序使用网络带宽可能会在某些条件下花费给用户的钱,尽管"蜂窝网络"或"使用漫游时使用数据"设备设置已启用.
crash-reports ×10
ios ×6
xcode ×3
android ×2
objective-c ×2
swift ×2
c++ ×1
crash ×1
crashlytics ×1
fatal-error ×1
ios8 ×1
ipad ×1
iphone ×1
javascript ×1
mingw ×1
mobile ×1
swift2 ×1
swiftui ×1
windows ×1