[llvm] [llvm-readobj] Dump callgraph section info for ELF (PR #157499)
Paul Kirth via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 5 09:13:28 PST 2025
================
@@ -0,0 +1,150 @@
+## Tests --call-graph-info prints information from call graph section.
+
+# REQUIRES: x86-registered-target
+
+# RUN: llvm-mc %s -filetype=obj -triple=x86_64-pc-linux -o %t
+# RUN: llvm-readelf --call-graph-info %t 2>&1 | FileCheck %s --allow-empty -DFILE=%t
+# RUN: llvm-readelf --elf-output-style=LLVM --call-graph-info %t 2>&1 | FileCheck %s -DFILE=%t --check-prefix=LLVM
+# RUN: llvm-readelf --elf-output-style=JSON --pretty-print --call-graph-info %t 2>&1 | FileCheck %s -DFILE=%t --check-prefix=JSON
+
+
+## We do not support GNU format console output for --call-graph-info as it is an LLVM only info.
+# CHECK-NOT: .
+
+# LLVM: warning: '[[FILE]]': .llvm.callgraph section has unknown type id for 2 indirect targets.
+# LLVM-NEXT: CallGraph [
+# LLVM-NEXT: Function {
+# LLVM-NEXT: Offset: 0x2
+# LLVM-NEXT: Version: 0
+# LLVM-NEXT: IsIndirectTarget: Yes
+# LLVM-NEXT: TypeId: 0x0
+# LLVM-NEXT: NumDirectCallees: 1
+# LLVM-NEXT: DirectCallees [
+# LLVM-NEXT: {
+# LLVM-NEXT: Offset: 0x13
+# LLVM-NEXT: }
+# LLVM-NEXT: ]
+# LLVM-NEXT: NumIndirectTargetTypeIDs: 0
+# LLVM-NEXT: IndirectTypeIDs: []
+# LLVM-NEXT: }
+# LLVM-NEXT: Function {
+# LLVM-NEXT: Offset: 0x1D
+# LLVM-NEXT: Version: 0
+# LLVM-NEXT: IsIndirectTarget: Yes
+# LLVM-NEXT: TypeId: 0x0
+# LLVM-NEXT: NumDirectCallees: 0
+# LLVM-NEXT: DirectCallees [
+# LLVM-NEXT: ]
+# LLVM-NEXT: NumIndirectTargetTypeIDs: 1
+# LLVM-NEXT: IndirectTypeIDs: [0x10]
+# LLVM-NEXT: }
+# LLVM-NEXT: Function {
+# LLVM-NEXT: Offset: 0x38
+# LLVM-NEXT: Version: 0
+# LLVM-NEXT: IsIndirectTarget: Yes
+# LLVM-NEXT: TypeId: 0x20
+# LLVM-NEXT: NumDirectCallees: 0
+# LLVM-NEXT: DirectCallees [
+# LLVM-NEXT: ]
+# LLVM-NEXT: NumIndirectTargetTypeIDs: 0
+# LLVM-NEXT: IndirectTypeIDs: []
+# LLVM-NEXT: }
+# LLVM-NEXT: ]
+
+# JSON: warning: '[[FILE]]': .llvm.callgraph section has unknown type id for 2 indirect targets.
+# JSON: "CallGraph": [
+# JSON-NEXT: {
+# JSON-NEXT: "Function": {
+# JSON-NEXT: "Offset": 2,
+# JSON-NEXT: "Version": 0,
+# JSON-NEXT: "IsIndirectTarget": true,
+# JSON-NEXT: "TypeId": 0,
+# JSON-NEXT: "NumDirectCallees": 1,
+# JSON-NEXT: "DirectCallees": [
+# JSON-NEXT: {
+# JSON-NEXT: "Offset": 19
----------------
ilovepi wrote:
What is `Offset` here? is it the address? offset from the start of the section?
https://github.com/llvm/llvm-project/pull/157499
More information about the llvm-commits
mailing list