/* Copyright (C) 2007-2011 The Android Open Source Project ** ** This software is licensed under the terms of the GNU General Public ** License version 2, as published by the Free Software Foundation, and ** may be copied, distributed, and modified under those terms. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. */ #ifndef NDK_CRASH_PARSER_H_ #define NDK_CRASH_PARSER_H_ /* * Contains declaration of structures and routines that are used to parse ADB * log output, filtering out and printing references related to the crash dump. */ /* Crash parser descriptor. */ typedef struct NdkCrashParser NdkCrashParser; /* Creates and initializes NdkCrashParser descriptor. * Param: * out_handle - Handle to the stream where to print the parser's output. * Typically, the handle is is stdout. * sym_root - Path to the root directory where symbols are stored. Note that * symbol tree starting with that root must match the tree of execuatable * modules in the device. I.e. symbols for /path/to/module must be located in * <sym_root>/path/to/module * Return: * Pointer to the initialized NdkCrashParser descriptor on success, or NULL on * failure. */ NdkCrashParser* CreateNdkCrashParser(FILE* out_handle, const char* sym_root); /* Destroys an NdkCrashParser descriptor. * Param: * parser - NdkCrashParser descriptor, created and initialized with a call to * NdkCrashParser routine. */ void DestroyNdkCrashParser(NdkCrashParser* parser); /* Parses a line from the ADB log output. * Param: * parser - NdkCrashParser descriptor, created and initialized with a call to * NdkCrashParser routine. * line - ADB log output line to parse. The line must be zero-terminated, and * must not contain \r, or \n in it. * Return: * 0 If the line has been part of the crash dump. * 1 If the line has not been part of the crash dump. * -1 If there was an error when parsing the line. * */ int ParseLine(NdkCrashParser* parser, const char* line); #endif // NDK_CRASH_PARSER_H_