07-Crash Log Analysis tool

Source: Internet
Author: User
Tags try catch

Http://bughd.com/doc/index

BUGHD User Manual I. Login/REGISTER

If you already have a fir.im account, you can log in directly using Fir.im's account.

Two. Create a project
    1. In the list of items, click "Create Project"
    2. Enter the project name, the type of application for the option item
    3. Gets to General_key, which is used to configure the SDK.

Three. Integration SDK

IOS app SDK Integration

Android app SDK Integration

Four. Gathering crash information

With crash information, you can filter for crashes based on the version of the app, the status of the fix for the crash, and when the crash occurred.

Five. View crash details

You can view stack information for crash issues, device distribution, operating system distribution, and other more detailed device information.

IOS Quick Configuration

Attention:

    • The SDK is the least compatible with IOS 6.0;
    • BUGHD SDK should not be used with other Crash Analysis SDK, the same interface registration will be overwritten.

General Key

General key is used to uniquely identify your app, to prevent abuse by others, do not disclose, build each project will automatically generate the project corresponding to the general key, on the Project list page to view each item corresponding to the general key value

Import SDK

Method One: Download and import the SDK

Drag the fir.framework folder in the download package to the Xcode Project

In the settings for your app, add the Link Binary with Libraries in Build phasesSystemConfiguration.framework


Method Two: Add by CocoaPods

1. Add the following code to your project's podfile:

pod ‘FIR.im‘, ‘~> 1.2.0‘

2. Perform pod installation commands

$ pod install

Invoking the SDK

In the Modify APPDELEGATE.M:

#import <FIR/FIR.h>//import header file

Then add a line to the Application:didfinishlaunchingwithoptions: method:

[FIR handlecrashwithkey:@]

IOS Detect version Updates

After verifying that the SDK configuration is successful, the ability to automatically detect the new version is implemented by a single line of code

Detecting new versions of fir.im

didFinishLaunchingWithOptionsAdd the following code to the method to implement fir.im-based detection updates, or add code to other functions based on actual requirements to enable click-button detection updates or automatic detection of updates in other cases

[FIR checkForUpdateInFIR:^(id result, NSError *error) {    // do something} token:@"YOUR_TOKEN"]

Precautions:

    • To replace token with fir.im user token
    • This method does not apply to the online app Store
IOS Custom Parameters

After the SDK quick configuration is complete, you can get custom parameter information when the app crashes by calling the following methods

Adding custom parameters

After the method is called, all of the program crashes, the custom parameters are uploaded to Bughd, and multiple parameters can be added.

/* 添加自定义参数@param value NSString型value@param key   NSString型key@Discussion 自定义参数,每次crash发送*/+(void)setCustomizeValue:(NSString *)value forKey:(NSString *)key;
How to use:
[FIR setCustomizeValue:@"value1" forKey:@"key1"];[FIR setCustomizeValue:@"value2" forKey:@"key2"];
Delete parameters according to key
/* 根据key删除参数@param key   NSString型key*/+(void)removeCustomizeValueForKey:(NSString *)key;
How to use:
[FIR removeCustomizeValueForKey:@"key1"];
Clear Custom Parameters
/* 清空自定义参数*/+(void)removeCustomizeValue;
How to use:
[FIR removeCustomizeValue];

How to get the IOS symbol table first step: Open Xcode and select "Window-->organizer"

The second step: select the corresponding version of the IPA package, "right-click-->show in Finder"

Step three: Select the corresponding version of the ". Xcarchive" File, "right--show Package Contents"

Fourth step: Select the ". DSYM" file under the Dsyms folder, "Right--show Package Contents"

Fifth step: The file under the Contents/resources/dwarf folder is the symbol table to be uploaded

FAQ BUGHD What crash messages are reported?

Crash caused by IOS app Apple C + + code
Android Application Java code led to Crash, NDK C + + development caused by Crash

How do I get the general Key?

Create a new project in my project and see the general Key in your project settings.

Does the crash escalate immediately?

A crash will escalate immediately, and if the escalation is unsuccessful, it will be escalated at the second boot.

Why is the exception not escalated?
    1. Is the general Key set correctly?
    2. Initializes whether the SDK was completed before Crash
    3. Whether the network is available
    4. There's an escalation in front of you? If the same crash has been the same, BUGHD will not generate two crashes, only accumulate the same crash number of crashes, please change an exception to try again!
Does configuring the Restore symbol table affect exception escalation? What effect will it have?

does not affect exception escalation! However, the resolution will not be able to find the corresponding method and error line, so in order to find the problem faster, please upload each version corresponding to the symbol table

Do you want to configure the symbol table for each version?

Need! A version, need to correspond to a copy of the symbol table (Java Mapping file and so's symbol file, applec++ dsym file), the configuration is only valid for the set version, duplicate configuration will be overwritten, if the individual version is not configured symbol table, we will use the latest uploaded symbol table interpretation, To ensure the accuracy of the information, it is recommended that each version upload the symbol table separately.

Will BUGHD repeatedly report the same problem?

No, in order to improve the efficiency of the crash repair, the same problem we only generate one, but the number of crashes will be ranked in the first order, reminding you that many users because of this problem caused the crash, please resolve as soon as possible.

iOS problem Bughd (iOS) can catch which exceptions

BUGHD listens for Objective C (abbreviated OC) code exceptions that are not caught by the try catch by registering Nsuncaughtexceptionhandler. BUGHD registers sigabrt/sigbus/sigfpe/sigill/sigsegv/sigtrap Several UNIX signals and listens for system abnormal signals caused by C code.

Can you capture a crash that's stuck?

No. The jailbreak expansion pack will look up and escalate such crash from the Crashlog of the system.

Can you capture the crash caused by lowmemory?

No.

Local debugging is not available

When debugging locally, if you use Xcode to start the app, GDB/LLDB will intercept the signal and stop the app running, BUGHD can't get the signal and process it, so you can't start with Xcode (NSException can click on a breakpoint to continue, you can use Xcode Start debugging).

Crash Stack is not readable

BUGHD escalated crash stacks are app parts with only address information, you need to configure the symbol table to symbolize escalated crashes, or you can turn on in-process restore.

What is a symbol table

The IOS app compiles when the DSYM file is produced, typically in the build directory, with a directory named *.app.dsym. BUGHD will parse this symbol table file, take out useful information, and get a smaller new symbol table for uploading.

In-process restore results are incorrect

If the STRIP option in the app's settings is all Symbols, then the restore is an error and cannot turn on in-process restore

The system module in the escalation stack fails partial restore

The newer system version will get a result when invoking the symbolic conversion function (DLADDR) within the process, and cannot get the correct system function. BUGHD will also perform a restore in the background, if the BUGHD background has a symbol table for the system, you will see the correct results.

Some system versions in the escalation stack failed to restore

BUGHD in the symbol table system stack, you need to correspond to the system version of the library, a lot of small version of the IOS build needs to be exported from the device, only the symbol table to collect the system to restore.

Andorid question What is the crash of Java?

The Java runtime is not throwable by the Try catched, and the process of throwing the JVM out of the JVM is the Java Crash.

What is the restore symbol file for Java?

When the product is published, it is common to use the Progurad tool to confuse code, improve security, and generate a mapping file, called a Java restore symbol file, when you use the Progurad tool for code obfuscation.

Why upload a Java restore symbol file?

Product Release installation package, the general code is confused, resulting in the escalation of the exception stack class name and method name is a non-readable way (such as A.B ()), BUGHD need to restore the symbol table through the Java restore the real readable class name and method name (for example: Myclass.mymehtod ()).

Kill-9, exit and so will be treated as Crash report?

No

Will the exception of Try catch be reported as crash?

No

Can the App be caught without responding to the exception (ANR)?

No way

07-Crash Log Analysis tool

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.