1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 * Header file of the dexdump utility. 17 * 18 * This is a re-implementation of the original dexdump utility that was 19 * based on Dalvik functions in libdex into a new dexdump that is now 20 * based on Art functions in libart instead. The output is identical to 21 * the original for correct DEX files. Error messages may differ, however. 22 * Also, ODEX files are no longer supported. 23 */ 24 25 #ifndef ART_DEXDUMP_DEXDUMP_H_ 26 #define ART_DEXDUMP_DEXDUMP_H_ 27 28 #include <stdint.h> 29 #include <stdio.h> 30 31 namespace art { 32 33 /* Supported output formats. */ 34 enum OutputFormat { 35 OUTPUT_PLAIN = 0, // default 36 OUTPUT_XML, // XML-style 37 }; 38 39 /* Command-line options. */ 40 struct Options { 41 bool checksumOnly; 42 bool disassemble; 43 bool exportsOnly; 44 bool ignoreBadChecksum; 45 bool showAnnotations; 46 bool showCfg; 47 bool showFileHeaders; 48 bool showSectionHeaders; 49 bool verbose; 50 OutputFormat outputFormat; 51 const char* outputFileName; 52 }; 53 54 /* Prototypes. */ 55 extern struct Options gOptions; 56 extern FILE* gOutFile; 57 int processFile(const char* fileName); 58 59 } // namespace art 60 61 #endif // ART_DEXDUMP_DEXDUMP_H_ 62