我个人使用的一个小实用程序(用C++编写)昨天随机崩溃(我已经使用它大约100多个小时,到目前为止没有问题)虽然我通常不这样做,但我感觉有点喜欢冒险,想尝试更多地了解这个问题.我决定进入事件查看器,看看Windows记录的崩溃事件:
Faulting application StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19
Faulting module name : StraightToM.exe, version 0.0.0.0, time stamp 0x4a873d19
Exception code : 0xc0000005
Fault offset : 0x0002d160,
Faulting process id: 0x17b4
Faulting application start time: time 0x01ca238d9e6b48b9.
Run Code Online (Sandbox Code Playgroud)
我的问题是,这些东西意味着什么,我将如何使用它们来调试我的程序?这是我目前所知的:异常代码描述了错误,而0xc0000005是内存访问冲突(试图访问它不拥有的内存).我特别想知道更多有关以下内容的信息:
请注意,我主要是一名C++程序员,所以虽然我对汇编有所了解,但我对它的了解非常有限.此外,这确实不是一个需要修复的严重问题(并且鉴于程序的性质也不容易复制),我只是以此为借口来了解这些错误消息的含义.我在网上找到的关于这些崩溃日志的大部分信息通常都是针对最终用户的,所以他们并没有帮助我(作为程序员).
提前致谢
我是一名c ++程序员,我对Java知之甚少.我知道java程序员不必像C++一样直接使用内存.我也知道C++应用程序中的大多数崩溃都是由于内存损坏造成的.
因为与内存相关的问题,用Java编写的应用程序是否会崩溃?
谢谢
我正在开发一个iPhone应用程序并进行临时分发以进行beta测试.我的用户正在向我发送崩溃日志,说明:
Identifier: MyAppName
Version: ??? (???)
Code Type: ARM (Native)
Run Code Online (Sandbox Code Playgroud)
我无法理解如何用真实版本号替换这些问号.我已经将我的Info.plist配置为包含CFBundleVersion和CFBundleShortVersionString,但这没有帮助...崩溃日志仍然只包含问号而不是我期望的版本号.
如何设置我的版本以便它显示在崩溃日志中?
编辑显然,由于iPhone CrashReporter中可能存在错误,因此无法正确设置"版本".但是有解决方法吗?在崩溃日志元数据中插入版本号(例如内部版本号或SCM版本号)的其他方法是什么?
有谁知道为什么会这样?我看到我的应用程序报告了这个崩溃,但我不知道它是什么.
java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
Thread: Binder_3, Exception: java.lang.NoClassDefFoundError: android.app.ANRManagerProxy
at android.app.ANRManagerNative.asInterface(ANRManagerNative.java:30)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:94)
at android.app.ANRManagerNative$1.create(ANRManagerNative.java:88)
at android.util.Singleton.get(Singleton.java:34) at android.app.ANRManagerNative.getDefault(ANRManagerNative.java:37)
at android.os.MessageLogger.dump(MessageLogger.java:253)
at android.app.ANRAppManager.dumpMessageHistory(SourceFile:38)
at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1176)
at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:609)
at android.os.Binder.execTransact(Binder.java:351)
at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud) crash android noclassdeffounderror stack-trace android-anr-dialog
我的项目使用Objective-C和Swift代码.当用户登录时,它会为用户首选项调用一组apis,我有一个DataCoordinator.swift类来调度API操作,我从UserDetailViewController.m类调用此类来加载用户首选项.在使用Xcode 9 beta 4将我的代码迁移到Swift 4之前,这种用法正常工作.现在当我登录时,我在DataCoordinator类中给出了这个错误.下面是我的DataCoordinator和Viewcontroller类的示例.
DataCoordinator.swift
import UIKit
@objcMembers
class DataCoordinator: NSObject {
//MARK:- Private
fileprivate var user = myDataStore.sharedInstance().user
fileprivate var preferenceFetchOperations = [FetchOperation]()
fileprivate func scheduleFetchOperation(_ operation:FetchOperation, inFetchOperations operations:inout [FetchOperation]) {
guard operations.index(of: operation) == nil else { return }
operations.append(operation)
}
fileprivate func completeFetchOperation(_ fetchOperation:FetchOperation, withError error:Error?, andCompletionHandler handler:@escaping FetchCompletionHandler) {
func removeOperation(_ operation:FetchOperation, fromOperations operations:inout [FetchOperation]) {
if operations.count > 0 {
operations.remove(at: operations.index(of: fetchOperation)!)
handler(error)
}
}
if preferenceFetchOperations.contains(fetchOperation) {
removeOperation(fetchOperation, fromOperations: &preferenceFetchOperations)
}
} …Run Code Online (Sandbox Code Playgroud) 我找到了几个崩溃报告的原因unexpected start state.我的代码看起来像这样:
NSRange range = [content rangeOfString:@"<html>"];
if (range.location != NSNotFound) {
NSString *htmlStr = [content substringFromIndex:range.location];
NSAttributedString *attStr = [[NSAttributedString alloc] initWithData:[htmlStr dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];
return attStr.string;
}
Run Code Online (Sandbox Code Playgroud)
崩溃报告如下所示:
在C++中,堆栈溢出通常会导致程序无法恢复的崩溃.对于需要非常强大的程序,这是一种不可接受的行为,特别是因为堆栈大小有限.关于如何处理问题的一些问题.
有没有办法通过一般技术来防止堆栈溢出.(一种可扩展,强大的解决方案,包括处理大量堆栈的外部库等)
有没有办法处理堆栈溢出,以防它们发生?优选地,堆栈被解开,直到有处理器来处理该类问题.
有些语言,有可扩展堆栈的线程.这样的东西在C++中是可能的吗?
关于C++行为解决方案的任何其他有用的评论将不胜感激.
我在Verizon Galaxy S III上遇到了很大的不稳定性,我相信它与WiFi驱动程序有关,或者至少与网络堆栈有关.我每天都会遇到完全系统崩溃,导致操作系统软重启.
为了追踪问题的根源,我想查看Android OS的历史崩溃数据.请注意,我不是在开发应用程序,我不希望有关如何使用LogCat跟踪开发中应用程序内的问题的说明.我想看看Android系统崩溃日志,但我不知道在哪里寻找它们.
提前致谢!
滚动选择器视图w /零数据(零行)时,我收到断言失败.在滚动选择器视图时,我遇到了这个崩溃.在iOS 6上测试
*断言失败 - [UITableViewRowData rectForRow:inSection:],/ SourceCache/UIKit_Sim/UIKit-2372/UITableViewRowData.m:1630
*由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'请求无效索引路径处的rect(2个索引[0,0])'
任何帮助都很明显.
我的 Arduino IDE(Win10 上的 1.8.12 版)在启动时崩溃。运行arduino_debug.exe我收到此错误消息。
C:\Program Files (x86)\Arduino>arduino_debug.exe
Set log4j store directory C:\Users\volke\AppData\Local\Arduino15
Loading configuration...
Initializing packages...
java.lang.NullPointerException
at cc.arduino.contributions.packages.ContributionsIndexer.parseIndex(ContributionsIndexer.java:134)
at processing.app.BaseNoGui.initPackages(BaseNoGui.java:483)
at processing.app.Base.<init>(Base.java:273)
at processing.app.Base.main(Base.java:150)
C:\Program Files (x86)\Arduino>
Run Code Online (Sandbox Code Playgroud)
任何解决方案?我试图删除配置文件package_index.json,package_esp32_index.json但没有任何运气。
crash ×10
c++ ×3
android ×2
windows ×2
arduino ×1
arduino-ide ×1
assembly ×1
crash-dumps ×1
debugging ×1
ios ×1
ios11 ×1
ios6 ×1
iphone ×1
java ×1
nsexception ×1
stack-trace ×1
swift ×1
swift4 ×1
uipickerview ×1
windows-10 ×1
xcode9-beta ×1