如何调试以下崩溃报告?
用户从App Store安装应用程序,但应用程序在加载时崩溃.我自己无法重新制造崩溃.我在我自己的iPad上查看了我的崩溃报告并找到了类似的报告,但是再次无法重新生成它.问题是用户它阻止了应用程序加载(而崩溃,我发现自己只是崩溃了应用程序,但它重新启动时工作正常).
有没有人可以指点我调试下面的方法?
SysInfoCrashReporterKey
31136b81228e5ddf6387c3aed3543d3580bcca2c
bug_type
109
description
Incident Identifier: F112DB19-91AA-4184-8B66-D2D80E451652
CrashReported Key: 31136b81228e5ddf6387c3aed3543d3580bcca2c
Hardware Model: iPad2,2
Process: iDomsReader [776]
Path: /var/mobile/Applications/0A50B09F-C579-425A-8EB8-95F4C5517929/iDomsReader.app/iDomsReader
Identifier: iDomsReader
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-02-04 12:55:59.542 -0700
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xa001af11
Crashed Thread: 10
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x36e49010 0x36e48000 + 4112
1 libsystem_kernel.dylib 0x36e49206 0x36e48000 + …Run Code Online (Sandbox Code Playgroud) 我正在创建一个多平台 Qt 应用程序,我希望崩溃报告系统能够在用户计算机发生崩溃时生成崩溃报告。稍后,我应该能够查看包含崩溃报告中所有调试信息的堆栈跟踪。我看过google-breakpad。
但是要使用它,我似乎需要为 Windows 切换到 MSVC。现在我在 Windows 上使用 MinGW,我需要花费大量的时间和精力来使用 MSVC 编译所有不同的库。有什么方法可以使用 MinGW 并且仍然可以使用 google-breakpad?或者是否有其他替代方案可以在多平台上工作并在 Windows 上支持 mingw?
我一直在测试AppCode,我似乎无法找到任何有关应用程序崩溃的信息.
我添加了一个异常断点,我可以看到导致崩溃的代码行,但没有关于原因的信息.
在Xcode中,异常原因被打印到控制台中但在AppCode中我只得到"Exception = Exception Breakpoint".
有人能指出我从崩溃中获取有用信息的方向.
我从我的应用程序的Google Play管理区域下载了崩溃报告,运行它retrace.sh以反转混淆Proguard映射,并在下面生成输出.
问题:
什么是未知来源?
showHeader,showPhoto等的确是我的方法SummaryFragment类,但为什么他们的顺序列出显示?这些方法在我的代码中不遵循任何类型的逻辑或执行顺序.
NPE实际上抛出了哪种方法?
Caused by: java.lang.NullPointerException
at com.myapp.SummaryFragment.selectMenuItemAuth(Unknown Source)
showHeader
photoButtonClicked
showPhoto
nameButtonClicked
deleteByID
access$0
at com.myapp.SummaryFragment.onActivityCreated(Unknown Source)
at android.support.v4.app.Fragment.performActivityCreated(Unknown Source)
at android.support.v4.app.FragmentManagerImpl.moveToState(Unknown Source)
moveToState
moveToState
moveToState
Run Code Online (Sandbox Code Playgroud) 我不断收到此崩溃报告,但我无法弄清楚问题出在哪里。我知道 SIGSEGV 异常类型通常是由于内存管理问题。
根据第 9 行,cxx_destruct在 SoundsViewController 内部调用函数时会发生崩溃,对吗?我在我的代码中看到这个控制器中的第 182 行是- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath函数的结尾。
这是否意味着有一些变量没有正确释放?我如何找到它们?我启用了 Zombie,它帮助我修复了另一个崩溃,但没有解决这个问题。
我将不胜感激任何帮助。谢谢!
Exception Type: SIGSEGV
Exception Codes: SEGV_ACCERR at 0xe15e7790
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x38656b26 +[Protocol load] + 1289
1 Foundation 0x2ec6803b -[NSThread description] + 1710
2 CoreFoundation 0x2e25018b -[__NSCFLocale initWithLocaleIdentifier:] + 20334
3 CoreFoundation 0x2e24f65b -[__NSCFLocale initWithLocaleIdentifier:] + 17470
4 CoreFoundation 0x2e24de4f -[__NSCFLocale initWithLocaleIdentifier:] + 11314
5 CoreFoundation 0x2e1b8ce7 0x2e1b1000 + 31975
6 CoreFoundation 0x2e1b8acb …Run Code Online (Sandbox Code Playgroud) 我的应用程序有 100% 用 Java 编写的代码,它不需要进行任何繁重的操作。
应用程序本身仅使用下一个库,但它们都没有 JNI 代码:
今天我收到一个奇怪的崩溃报告,它没有显示任何正常的异常信息。
该报告是通过装有 Android 4.4 的“Galaxy S5 (klte)”设备发送的。
这是崩溃报告的标题:
Native crash at /dev/ashmem/dalvik-jit-code-cache in
/dev/ashmem/dalvik-jit-code-cache (deleted)
Run Code Online (Sandbox Code Playgroud)
这是崩溃内容:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/kltexx/klte:4.4.2/KOT49H/G900FXXU1ANE2:user/release-keys'
Revision: '14'
pid: 11904, tid: 11904, name: .lb.app_manager >>> com.lb.app_manager <<<
signal 7 (SIGBUS), code 2 (BUS_ADRERR), fault addr 6d7b97cc SOME_NUMBERS
backtrace:
#00 pc 00026a56 /dev/ashmem/dalvik-jit-code-cache (deleted)
#01 pc 00026a55 /dev/ashmem/dalvik-jit-code-cache (deleted) …Run Code Online (Sandbox Code Playgroud) 我已经在我的Qt应用程序的Windows版本中添加了一个迷你核心转储功能(通过__try/__ except和MiniDumpWriteDump()),这样如果/当我的应用程序崩溃时,.dmp文件将被写入磁盘让我以后查看和调试.
这非常有效,但是对于测试,我希望有一个已知可靠的方法来使我的程序崩溃.例如,GUI中可能存在"立即崩溃"按钮,当用户单击它时,它将导致应用程序故意崩溃.
当然,一种方法是这样的:
int * badPointer = NULL;
*badPointer = 666;
Run Code Online (Sandbox Code Playgroud)
这对我有用,但我不喜欢这种方法,因为它依赖于未定义的行为 - 特别是,C++标准不要求上面的代码导致崩溃,所以它是可能的(从语言 - 律师的角度来看) )当上面的代码执行时,编译器的某些未来版本不会崩溃.
作为一种更"官方"的方法,我试过这个:
abort();
Run Code Online (Sandbox Code Playgroud)
...它会终止程序,但它不会导致Windows结构化异常触发MiniCrashDump处理程序,因此不会写入.dmp文件.
我的问题是,是否有一个"官方正确的方式"来破坏我的计划?我看到Windows API有一个我可以调用的RaiseException()函数,但我不确定它应该是什么正确的参数.这是要走的路,还是有一些更具体的电话,我会更好用?
我需要帮助从测试用户了解此崩溃日志.我没有在我的应用程序中编写任何与JavaScriptCore相关的代码.
我仍然不知道如何重现这次崩溃.任何关于这个问题的见解都有助于我找到这个问题.
谢谢,
PS我的应用程序正在使用Admob中介.我不知道它是否与此有某种关系.
Incident Identifier: 7B6EFFFF-4D55-48AE-8FE8-A55590405F0A
CrashReporter Key: ef1ad783966254a93308221f30f17134c95879f7
Hardware Model: iPad5,3
Process: ???? [2325]
Path: /private/var/mobile/Containers/Bundle/Application/16AE72E1-A8C8-45D9-955F-A6F96FCCE800/????.app/????
Identifier: ????
Version: 3.75.14 (3.75)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2015-05-16 10:36:50.459 -0700
Launch Time: 2015-05-16 10:00:10.481 -0700
OS Version: iOS 8.3 (12F69)
Report Version: 105
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000bbadbeef
Triggered by Thread: 4
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x0000000197080e0c mach_msg_trap + 8
1 libsystem_kernel.dylib 0x0000000197080c84 mach_msg + …Run Code Online (Sandbox Code Playgroud) 我正在使用Parse作为我的Android应用程序的后端,我想使用崩溃报告.但这不起作用.
我正在使用最后一个Parse SDK:`v1.10.3
我有一个我初始化Parse的类:
public class Parse extends android.app.Application {
@Override
public void onCreate() {
super.onCreate();
ParseCrashReporting.enable(this);
com.parse.Parse.initialize(this, "KEY", "KEY");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("main");
}
}
Run Code Online (Sandbox Code Playgroud)
我将此类添加到Android清单文件中,因此执行此类一次并且不会导致初始化解析崩溃.
<application
android:name=".Parse"
Run Code Online (Sandbox Code Playgroud)
崩溃报告似乎没有用,我没有崩溃出现面板我做了Parse测试.但没有出现崩溃.
我添加时,我的应用程序日志中有一些消息:
throw new RuntimeException("Test Exception!");
Run Code Online (Sandbox Code Playgroud)
在我的MainActivity上.
这是日志:
E/CrashReporting: ParseCrashReporting caught a RuntimeException exception for com.example.yasser.version6. Building report.
10-17 22:06:19.408 1863-1863/com.example.yasser.version6 E/CrashReporting: Handling exception for crash
10-17 22:06:19.408 1863-1863/com.example.yasser.version6 E/CrashReporting: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.yasser.version6/com.example.yasser.version6.MainActivity}: java.lang.RuntimeException: Test Exception!
10-17 22:06:19.408 1863-1863/com.example.yasser.version6 E/CrashReporting: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2411)
10-17 22:06:19.408 1863-1863/com.example.yasser.version6 E/CrashReporting: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2474)
10-17 22:06:19.408 …Run Code Online (Sandbox Code Playgroud) 在人们升级到iOS 10之后,我突然在一个稳定的应用程序上看到数百次崩溃.大多数情况下,所有这些都与:
Termination Reason: Namespace SPRINGBOARD, Code 0xdead10cc
Run Code Online (Sandbox Code Playgroud)
许多崩溃日志没有太多的符号,除了它们似乎有一些共同点(我认为) - 当应用程序尝试同步/访问数据库或使用其他方法执行其他操作时,它们会在后台崩溃sqlite数据库(例如写入它).这之前工作得很好,但突然有人报告他们的iPhone在使用应用程序时正在重启.
其他人有类似问题吗?任何决议?崩溃日志没有多大帮助,因为崩溃是在sqlite3.c中的某个地方尝试或者在sqlite3_step或open
crash-reports ×10
android ×2
ios ×2
objective-c ×2
appcode ×1
cocoa-touch ×1
crash ×1
crash-dumps ×1
dalvik ×1
ios10 ×1
ipad ×1
java ×1
mingw ×1
proguard ×1
qt ×1
seh ×1
windows ×1