Customer Cases
Pricing

How to Utilize CrashSight's Symbol Table Tool for Efficient Debugging

Learn how to use CrashSight's Symbol Table Tool to extract and upload symbol table files, enabling efficient debugging and crash analysis for your apps.
 

1. What is a Symbol Table and Why is it Important?

A symbol table is a mapping table containing memory addresses, function names, file names, and line numbers. CrashSight uses symbol tables to analyze and retrace crash stacks, helping developers locate the code where a crash occurred quickly and accurately.

1.1 Environment Requirements

- Java SE Runtime Environment (64-bit)

- JRE and JDK version 1.6 or higher

1.2 Symbol Table Extraction Requirements

- Symbol Table Tool

- Debug (unstripped) SO file

1.3 Uploading Symbol Table

CrashSight Android Symbol Table Tool v2.5.0 and above support uploading features, including Mapping file uploading.

2. How to Extract Symbol Tables

The Symbol Table Tool supports Windows, Linux, and Mac platforms, providing crashSightSymbolAndroid.jar and crashSightSymboliOS.jar files.

2.1 Tool Usage and Options

 

 

jar -jar <JAR file> [-option <parameter>]

 

2.2 Usage Example

2.2.1 Symbol Table Generation and Uploading for Debug SO

Example:

- Operating system: Windows

- Directory of Debug SO: E:\Projects\Demo\obj

- App ID: 9000012345

- App Key: abcdefghijk

- App Package Name: com.batman.demo

- App Version: 2.3.1

Use the Symbol Table Tool's JAR file to generate the symbol table file and upload automatically:

 

 

java -jar crashSightSymbolAndroid.jar -i E:\Projects\Demo\obj -u -id 900012345 -key abcdefghijk -package com.batman.demo -version 2.3.1 -url https://crashsight.wetest.net/openapi/file/upload/symbol

 

2.2.2 Upload Mapping Files

Example:

- Operating system: Windows

- Android project directory: E:\Projects\Demo

- App ID: 9000012345

- App Key: abcdefghijk

- App Package Name: com.batman.demo

- App Version: 2.3.1

Use the Symbol Table Tool to upload Mapping files:

 

 

java -jar crashSightSymbolAndroid.jar -mapping E:\Projects\Demo\Mapping\mapping.txt -u -id 900012345 -key abcdefghijk -package com.batman.demo -version 2.3.1 -channel tencent -url https://crashsight.wetest.net/openapi/file/upload/symbol

 

3. FAQs

- What is the input file of the Symbol Table Tool? For Android, input .so files with debugging info. For iOS, input dsym files.

- What is a Symbol Table's UUID? UUID is a built-in property of so/dsym. For one single file, its value remains the same.

- Does uploading a Symbol Table overwrite the previous table? The previous table will be overwritten if the two tables share the same UUID, but retained if the UUIDs are different.

- After using the Symbol Table uploading tool, how can I know whether the upload is successful? Usually, the upload is successful as long as the Symbol Table Tool is executed. You can also check on the page whether the Symbol Table of the corresponding version has been uploaded.

- How would I know when the uploading tool needs an update? And how to update it? If the update is optional, it will be included in this document. If the update is a must, users will be notified via the communication channel provided upon Integration.

By leveraging CrashSight's Symbol Table Tool, you can efficiently debug and analyze crashes in your app, ensuring a smooth and seamless user experience.

Latest Posts
1Test Management: Practical Lessons for Engineering Team Leads Learn proven test management strategies for technical leaders, including team efficiency optimization, project planning, knowledge accumulation, QCC improvement, and practical team building methods.
2The Path to Test Development: 7 Core Competencies for Modern QA Engineers What makes a senior QA engineer stand out? Explore the 7 core QA competencies including quality-driven execution, team influence, risk governance, process improvement, and technical fundamentals for modern software testing.
3Critical UI Test Automation Pitfalls and How to Fix Them Learn the most common UI test automation pitfalls in Android, including flaky tests, ADB instability, UI changes, and resource obfuscation, with practical fixes using POM, UiAutomator, and optimized scripting.
4Breaking Murphy’s Law in Testing: How to Avoid UAT Project Failures Learn how proactive full-lifecycle quality governance helps software test teams break Murphy’s Law, eliminate self-fulfilling UAT risks, and transform from reactive execution to strategic QA leadership.
5Why Testers Should Learn Source Code: Benefits & Practical Guide Learn why software testers need source code reading skills. Explore real test cases, Spring transaction pitfalls, debugging skills, and practical code learning strategies for QA engineers.