天道酬勤,学无止境

crash

试飞 Beta 测试:Xcode 6.3 Beta 4 不显示崩溃(Test Flight Beta Testing: Xcode 6.3 Beta 4 does not show crashes)

问题 我专注于新的试飞程序。 我开发了一个应用程序(我通过 Xcode 提交到 iTunes Connect 门户),如果点击UIButton会崩溃。 由于该应用程序可用于内部测试人员的 Beta 测试,我希望在 Xcode 6.3 Beta 4 的新崩溃部分中看到崩溃日志(请参阅崩溃管理器帮助)。 但没什么。 没有可用的崩溃。 有什么特别的原因吗? 这与我使用的测试仪类型有关吗? 我了解到 Xcode 6.3 是 Beta 版。 回答1 更新 Xcode 6.3 已经发布,现在崩溃可用。 原答案 来自苹果文档 如何收集崩溃日志并将其聚合到崩溃报告中 Apple 提供了一项服务,可以从用户那里收集崩溃日志并将它们整理成可下载的崩溃报告。 但是,仅当您上传带有符号的应用程序时才会收集崩溃日志。 (在档案管理器中,当您将应用程序上传到 iTunes Connect 时,选择“为您的应用程序包含应用程序符号...”框。)对于在 App Store 中发布的应用程序,用户还必须同意与开发人员共享崩溃日志。 TestFlight 用户会自动与开发人员共享崩溃日志。 创建崩溃报告的服务执行以下操作: 从 TestFlight和 App Store 构建中收集崩溃日志提供发生崩溃的唯一设备总数为每个崩溃报告提供一组样本崩溃日志从崩溃日志中删除所有个人用户数据每天创建崩溃报告当您打开崩溃管理器时

2021-09-19 18:48:24    分类:技术分享    xcode   crash   xcode6   testflight   beta-testing

Ad-Hoc 分布式应用未能及时启动(Ad-Hoc distributed application failed to launch in time)

问题 我有一个在 iPad Air 上运行的用 Swift 编写的 iOS 应用程序,带有一个临时分发配置文件。 在这个版本中,我的应用程序被 iOS 启动计时器崩溃,说它没有及时启动。 我找到了对此的解释,说我应该从应用程序委托的 didFinishLaunchingWithOptions 中删除繁重的操作。 奇怪的是,里面几乎什么都没有。 func application(application: UITimedApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // Register default settings let appDefaults = [ "jsonURL": "http://192.168.178.156:8888/people.json", "apiBaseURL": "http://192.168.178.156:8888", "idleTimeout": 3, "numberOfPeople": 2147 ] NSUserDefaults.standardUserDefaults().registerDefaults(appDefaults) // Listen to charge state changes

2021-09-19 13:17:38    分类:技术分享    ios   swift   crash   ad-hoc-distribution

内存警告但小活字节(Memory Warning but Small Live Bytes)

问题 在我的应用程序中,在多次重复某些操作(选择图片 + 处理)然后崩溃后,我收到级别 1 和级别 2 的内存警告。 泄漏工具没有显示任何泄漏。 我也在关注 Instruments 中的分配工具,我的 Live Bytes 大约为 4 MB,我总共分配了 113 MB。 加载图片时,我最多可能有 20 MB 的内存。 由于我必须重复一个动作才能导致崩溃,因此很可能是内存泄漏。 但是,我不知道如何定位它,因为我的活动字节是 4 MB,并且应该分配一些东西(除了 UIImagePickerController 中约 100 KB 的小泄漏)。 我可以信任内存泄漏/分配工具多少? 你有什么建议可以帮助我找到问题的原因吗? 回答1 我不知道 iPhone OS 是如何工作的,所以这基本上只是猜测,但在没有垃圾收集器压缩堆内存的系统中,它会随着时间的推移而碎片化。 拥有大量可用内存并不意味着大量连续内存是可用的。 例如,如果您总是需要 4MB 内存来进行某些处理,并且您有以下分配模式: 分配 4MB 分配 1KB 免费 4MB 分配 1KB (你不释放 1KB 块,因为它是计算结果,或者其他什么) 您最终可能只有 3,999K 的空闲连续内存 - 所以下次分配 4MB 时,它将位于间隙之后,即使它几乎适合。 这意味着即使几乎整个内存(或者更确切地说,寻址空间)都是空闲的,您也可能会耗尽内存。

2021-09-19 12:37:04    分类:技术分享    iphone   memory-management   memory-leaks   crash   instruments

内存警告但小活字节(Memory Warning but Small Live Bytes)

问题 在我的应用程序中,在多次重复某些操作(选择图片 + 处理)然后崩溃后,我收到级别 1 和级别 2 的内存警告。 泄漏工具没有显示任何泄漏。 我也在关注 Instruments 中的分配工具,我的 Live Bytes 大约为 4 MB,我总共分配了 113 MB。 加载图片时,我最多可能有 20 MB 的内存。 由于我必须重复一个动作才能导致崩溃,因此很可能是内存泄漏。 但是,我不知道如何定位它,因为我的活动字节是 4 MB,并且应该分配一些东西(除了 UIImagePickerController 中约 100 KB 的小泄漏)。 我可以信任内存泄漏/分配工具多少? 你有什么建议可以帮助我找到问题的原因吗? 回答1 我不知道 iPhone OS 是如何工作的,所以这基本上只是猜测,但在没有垃圾收集器压缩堆内存的系统中,它会随着时间的推移而碎片化。 拥有大量可用内存并不意味着大量连续内存是可用的。 例如,如果您总是需要 4MB 内存来进行某些处理,并且您有以下分配模式: 分配 4MB 分配 1KB 免费 4MB 分配 1KB (你不释放 1KB 块,因为它是计算结果,或者其他什么) 您最终可能只有 3,999K 的空闲连续内存 - 所以下次分配 4MB 时,它将位于间隙之后,即使它几乎适合。 这意味着即使几乎整个内存(或者更确切地说,寻址空间)都是空闲的,您也可能会耗尽内存。

2021-09-19 12:35:08    分类:技术分享    iphone   memory-management   memory-leaks   crash   instruments

在 Windows 上检测/重定向核心转储(当软件崩溃时)(Detect/Redirect core dumps (when a software crashes) on Windows)

问题 对于我的工作,我需要创建一个服务来检测异常程序终止,而不是向用户显示消息(默认行为),而是将生成的核心转储发送到远程服务器。 我很确定这可以做到,但我完全不知道从哪里开始。 是否有任何 API/注册表设置? 谢谢你。 回答1 一种方法是安装一个未处理的异常过滤器,然后从中编写一个小型转储,然后您可以将其上传到您选择的某个地方。 我不会完全无视 Windows 错误报告——这是对您自己的任何崩溃报告的补充。 如果您的应用程序是公开发布的,那么注册 Windows 错误报告是非常值得的,因为您可以获得有关用户在野外遇到哪些崩溃的信息,以及何时修复了崩溃,您可以添加响应代码以将它们指向新版本或其他相关信息。 根据您的应用程序在组织中的部署方式,另一个可能有用的工具是在用户的机器上运行 Adplus,它将收集故障转储。 这对于似乎影响单个用户但在开发环境中不可重现的一次性崩溃更有用。 其他一些有用的链接: http://www.debuginfo.com/articles/effminidumps.html - 一些有用的示例代码 http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx 回答2 看来我的问题要么很明显,要么很愚蠢(两者都是?)但无论如何,经过一些研究,我发现了一些有趣的页面。

2021-09-19 07:15:56    分类:技术分享    windows   crash   crash-dumps

更新 Android 5.1 后系统 UI 停止(System UI has stopped after update Android 5.1)

问题 [已解决] 我面临一个大问题。 我的应用程序在更新 Android 5.1 之前正常工作。 将我的 Nexus 5 升级到 Android 5.1 后,应用运行良好。 但是我的拥有 Nexus 6 设备的用户报告说他们在升级到 5.1 后收到错误“系统用户界面已停止”。 我以前从来没有遇到过这个错误。 我不明白发生了什么。 编辑:我终于知道发生了什么。 这是 Android 5.1 的一个带有屏幕截图权限的错误。 如果用户选择屏幕捕获权限对话框的“不再显示”复选框,则下次用户将导致系统 UI 崩溃。 所以避免它的唯一方法是不要选择“不再显示”。

2021-09-19 02:26:49    分类:技术分享    android   crash   system   updates

LINQ to SQL:包装在 TargetInvocationException 中的间歇性 AccessViolationException(LINQ to SQL: intermittent AccessViolationException wrapped in TargetInvocationException)

问题 几周以来,我们的 ASP.Net Web 应用程序遇到了 W3WP 崩溃。 这些是在我们的网络服务器更新后开始的。 我们的应用程序没有改变并且多年来一直稳定。 我们的情况似乎很像之前的这个问题。 这个问题也可能是相关的,尽管在我们的例子中,查询在 99.9% 的使用时间中运行良好。 我们使用了大量未编译的 LINQ 查询,并尝试编译它们是否可以防止这些崩溃。 事故的数量急剧减少,但它们仍然发生。 同样将我们的查询包装在try catch ,然后捕获TargetInvocationException是行不通的。 异常未被捕获。 当发生崩溃时,我们会收到 WER 报告并可以检索崩溃转储。 未编译查询的转储堆栈跟踪通常如下所示: 在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 在 System.Delegate.DynamicInvokeImpl(Object[] args) 在

2021-09-18 17:54:18    分类:技术分享    c#   .net   linq   linq-to-sql   crash

致命信号 11 (SIGSEGV),代码 1,故障地址 (RenderThread)(Fatal signal 11 (SIGSEGV), code 1, fault addr (RenderThread))

问题 当双击附加到 windowmanager 的元素时,我试图停止服务。 @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: // Get current time in nano seconds. long pressTime = System.currentTimeMillis(); // If double click... if (pressTime - lastPressTime <= 300) { createNotification(); ServiceFloating.this.stopSelf(); mHasDoubleClicked = true; } else { // If not double click.... mHasDoubleClicked = false; } lastPressTime = pressTime; initialX = paramsF.x; initialY = paramsF.y; initialTouchX = event.getRawX(); initialTouchY = event.getRawY(); break; case

2021-09-18 17:08:22    分类:技术分享    android   service   crash

检测到 AccessViolationException 时如何强制应用程序崩溃(How to force an application crash when AccessViolationException is detected)

问题 我们使用自动崩溃报告工具(即 http://crashrpt.sourceforge.net)来生成崩溃报告。 因此,如果一段非托管代码因访问NULL指针而失败,例如,应用程序崩溃,崩溃报告工具将激活,我们将获得可用于诊断和分组问题的堆栈跟踪。 问题是 .NET 在某些情况下似乎会干扰崩溃处理。 一个示例如下: this.Dispatcher.BeginInvoke((ThreadStart)delegate { // Send message to unmanaged control for performing a specific task. User32.SendMessage(...); }, DispatcherPriority.Input); 如果非托管组件随后因访问冲突而失败,则内部 .NET 方法将实际应该崩溃的内容捕获为AccessViolationException并首先将其TargetInvocationException包装在TargetInvocationException ,然后崩溃(如果不使用方法调用,它不会这样做)。 这是非常不方便的,因为原生堆栈信息完全丢失了。 剩下的是以下堆栈,与非托管部分发生故障的确切位置无关: kernelbase!RaiseException+0x6c clr

2021-09-18 16:18:06    分类:技术分享    .net   exception-handling   crash   crash-reports

JVM 崩溃 EXCEPTION_ACCESS_VIOLATION (0xc0000005)(JVM Crashing EXCEPTION_ACCESS_VIOLATION (0xc0000005))

问题 我最近遇到了 jvm 崩溃的问题。 这最初是在我运行 Windows 8.1 时开始发生的,但是前几天我重新安装了 Windows 7,但问题仍然存在。 我已经安装了 JDK 和 JRE,它们是按这个顺序安装的。 版本为 8.0.310.13。 基本上,这在运行时随机发生,并且发生在两个完全不同的程序中。 其中一个是 Eclipse Luna 4.4.1,另一个是 JAR。 以下是来自 JAR 的两个最新 hs_err_pid 文件的上半部分: # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000055e200d5, pid=4764, tid=5664 # # JRE version: Java(TM) SE Runtime Environment (8.0_31-b13) (build 1.8.0_31-b13) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.31-b07 mixed mode windows-amd64 compressed oops) # Problematic frame: # V [jvm.dll

2021-09-18 11:34:28    分类:技术分享    java   eclipse   crash   jvm