1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 12:41:49 +01:00

[DebugInfo] Dump CIE augmentation data as a list of hex bytes

CIE augmentation data might contain non-printable characters.
The patch prints the data as a list of hex bytes.

Differential Revision: http://reviews.llvm.org/D17759

llvm-svn: 262361
This commit is contained in:
Simon Atanasyan 2016-03-01 18:38:05 +00:00
parent 578ce7baf1
commit 1c312f2b01
4 changed files with 35 additions and 3 deletions

View File

@ -12,6 +12,7 @@
#include "llvm/ADT/DenseMap.h" #include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Optional.h" #include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallString.h" #include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/Casting.h" #include "llvm/Support/Casting.h"
#include "llvm/Support/DataTypes.h" #include "llvm/Support/DataTypes.h"
#include "llvm/Support/Dwarf.h" #include "llvm/Support/Dwarf.h"
@ -244,8 +245,12 @@ public:
(int32_t)DataAlignmentFactor); (int32_t)DataAlignmentFactor);
OS << format(" Return address column: %d\n", OS << format(" Return address column: %d\n",
(int32_t)ReturnAddressRegister); (int32_t)ReturnAddressRegister);
if (!AugmentationData.empty()) if (!AugmentationData.empty()) {
OS << " Augmentation data: " << AugmentationData << "\n"; OS << " Augmentation data: ";
for (uint8_t Byte : AugmentationData)
OS << ' ' << hexdigit(Byte >> 4) << hexdigit(Byte & 0xf);
OS << "\n";
}
OS << "\n"; OS << "\n";
} }

Binary file not shown.

View File

@ -8,7 +8,7 @@
# CHECK: Code alignment factor: 1 # CHECK: Code alignment factor: 1
# CHECK: Data alignment factor: -8 # CHECK: Data alignment factor: -8
# CHECK: Return address column: 30 # CHECK: Return address column: 30
# CHECK: Augmentation data: # CHECK: Augmentation data: 10
# CHECK: DW_CFA_def_cfa: reg31 +0 # CHECK: DW_CFA_def_cfa: reg31 +0

View File

@ -0,0 +1,27 @@
# RUN: llvm-objdump -dwarf=frames %p/Inputs/eh_frame.elf-mipsel | FileCheck %s
# CHECK: .eh_frame contents:
# CHECK: 00000000 00000018 ffffffff CIE
# CHECK: Version: 1
# CHECK: Augmentation: "zPLR"
# CHECK: Code alignment factor: 1
# CHECK: Data alignment factor: -4
# CHECK: Return address column: 31
# CHECK: Augmentation data: 80 90 0B 41 00 00 0B
# CHECK: DW_CFA_def_cfa: reg29 +0
# CHECK: 0000001c 00000018 00000020 FDE cie=00000020 pc=00400890...004008dc
# CHECK: DW_CFA_advance_loc: 4
# CHECK: DW_CFA_def_cfa_offset: +24
# CHECK: DW_CFA_advance_loc: 4
# CHECK: DW_CFA_offset: reg31 -4
# CHECK: DW_CFA_nop:
# CHECK: 00000038 00000000 ffffffff CIE
# CHECK: Version: 0
# CHECK: Augmentation: ""
# CHECK: Code alignment factor: 0
# CHECK: Data alignment factor: 0
# CHECK: Return address column: 0