1 //===-- DWARFDefines.cpp --------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "DWARFDefines.h" 10 #include "lldb/Utility/ConstString.h" 11 #include <cstdio> 12 #include <cstring> 13 #include <string> 14 15 namespace lldb_private::plugin { 16 namespace dwarf { 17 18 const char *DW_TAG_value_to_name(uint32_t val) { 19 static char invalid[100]; 20 21 if (val == 0) 22 return "NULL"; 23 24 llvm::StringRef llvmstr = llvm::dwarf::TagString(val); 25 if (llvmstr.empty()) { 26 snprintf(invalid, sizeof(invalid), "Unknown DW_TAG constant: 0x%x", val); 27 return invalid; 28 } 29 return llvmstr.data(); 30 } 31 32 const char *DW_AT_value_to_name(uint32_t val) { 33 static char invalid[100]; 34 llvm::StringRef llvmstr = llvm::dwarf::AttributeString(val); 35 if (llvmstr.empty()) { 36 snprintf(invalid, sizeof(invalid), "Unknown DW_AT constant: 0x%x", val); 37 return invalid; 38 } 39 return llvmstr.data(); 40 } 41 42 const char *DW_FORM_value_to_name(uint32_t val) { 43 static char invalid[100]; 44 llvm::StringRef llvmstr = llvm::dwarf::FormEncodingString(val); 45 if (llvmstr.empty()) { 46 snprintf(invalid, sizeof(invalid), "Unknown DW_FORM constant: 0x%x", val); 47 return invalid; 48 } 49 return llvmstr.data(); 50 } 51 52 const char *DW_OP_value_to_name(uint32_t val) { 53 static char invalid[100]; 54 llvm::StringRef llvmstr = llvm::dwarf::OperationEncodingString(val); 55 if (llvmstr.empty()) { 56 snprintf(invalid, sizeof(invalid), "Unknown DW_OP constant: 0x%x", val); 57 return invalid; 58 } 59 return llvmstr.data(); 60 } 61 62 const char *DW_ATE_value_to_name(uint32_t val) { 63 static char invalid[100]; 64 llvm::StringRef llvmstr = llvm::dwarf::AttributeEncodingString(val); 65 if (llvmstr.empty()) { 66 snprintf(invalid, sizeof(invalid), "Unknown DW_ATE constant: 0x%x", val); 67 return invalid; 68 } 69 return llvmstr.data(); 70 } 71 72 const char *DW_LANG_value_to_name(uint32_t val) { 73 static char invalid[100]; 74 llvm::StringRef llvmstr = llvm::dwarf::LanguageString(val); 75 if (llvmstr.empty()) { 76 snprintf(invalid, sizeof(invalid), "Unknown DW_LANG constant: 0x%x", val); 77 return invalid; 78 } 79 return llvmstr.data(); 80 } 81 82 const char *DW_LNS_value_to_name(uint32_t val) { 83 static char invalid[100]; 84 llvm::StringRef llvmstr = llvm::dwarf::LNStandardString(val); 85 if (llvmstr.empty()) { 86 snprintf(invalid, sizeof(invalid), "Unknown DW_LNS constant: 0x%x", val); 87 return invalid; 88 } 89 return llvmstr.data(); 90 } 91 92 } // namespace dwarf 93 } // namespace lldb_private::plugin 94