forked from OSchip/llvm-project
[llvm-readobj] Report more WebAssembly symbol info
Differential Revision: https://reviews.llvm.org/D57695 llvm-svn: 353104
This commit is contained in:
parent
1f9e23e3cc
commit
3fd2462d03
|
@ -166,41 +166,53 @@
|
|||
; CHECK-NEXT: Name: f2
|
||||
; CHECK-NEXT: Type: FUNCTION (0x0)
|
||||
; CHECK-NEXT: Flags: 0x4
|
||||
; CHECK-NEXT: ElementIndex: 0x0
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: foo
|
||||
; CHECK-NEXT: Type: DATA (0x1)
|
||||
; CHECK-NEXT: Flags: 0x4
|
||||
; CHECK-NEXT: Offset: 0x0
|
||||
; CHECK-NEXT: Segment: 0x0
|
||||
; CHECK-NEXT: Size: 0x4
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: myextern
|
||||
; CHECK-NEXT: Type: DATA (0x1)
|
||||
; CHECK-NEXT: Flags: 0x10
|
||||
; CHECK-NEXT: Module:
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: ptr2
|
||||
; CHECK-NEXT: Type: DATA (0x1)
|
||||
; CHECK-NEXT: Flags: 0x4
|
||||
; CHECK-NEXT: Offset: 0x0
|
||||
; CHECK-NEXT: Segment: 0x1
|
||||
; CHECK-NEXT: Size: 0x4
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: .debug_str
|
||||
; CHECK-NEXT: Type: SECTION (0x3)
|
||||
; CHECK-NEXT: Flags: 0x2
|
||||
; CHECK-NEXT: ElementIndex: 0x6
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: .debug_abbrev
|
||||
; CHECK-NEXT: Type: SECTION (0x3)
|
||||
; CHECK-NEXT: Flags: 0x2
|
||||
; CHECK-NEXT: ElementIndex: 0x7
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: .debug_info
|
||||
; CHECK-NEXT: Type: SECTION (0x3)
|
||||
; CHECK-NEXT: Flags: 0x2
|
||||
; CHECK-NEXT: ElementIndex: 0x8
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: Symbol {
|
||||
; CHECK-NEXT: Name: .debug_line
|
||||
; CHECK-NEXT: Type: SECTION (0x3)
|
||||
; CHECK-NEXT: Flags: 0x2
|
||||
; CHECK-NEXT: ElementIndex: 0xC
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT:]
|
||||
|
||||
|
|
|
@ -210,6 +210,15 @@ void WasmDumper::printSymbol(const SymbolRef &Sym) {
|
|||
W.printString("Name", Symbol.Info.Name);
|
||||
W.printEnum("Type", Symbol.Info.Kind, makeArrayRef(WasmSymbolTypes));
|
||||
W.printHex("Flags", Symbol.Info.Flags);
|
||||
if (Symbol.Info.Flags & wasm::WASM_SYMBOL_UNDEFINED)
|
||||
W.printString("Module", Symbol.Info.Module);
|
||||
if (Symbol.Info.Kind != wasm::WASM_SYMBOL_TYPE_DATA) {
|
||||
W.printHex("ElementIndex", Symbol.Info.ElementIndex);
|
||||
} else if (!(Symbol.Info.Flags & wasm::WASM_SYMBOL_UNDEFINED)) {
|
||||
W.printHex("Offset", Symbol.Info.DataRef.Offset);
|
||||
W.printHex("Segment", Symbol.Info.DataRef.Segment);
|
||||
W.printHex("Size", Symbol.Info.DataRef.Size);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
|
Loading…
Reference in New Issue