Description
❯ cat test.c
int main(){}
❯ zig cc test.c -target hexagon-linux # or clang
❯ llvm-objdump --disassemble-all a.out
...snip...
00000000 <.debug_info>:
...snip...
2ba94: 00 0a b6 01 01b60a00 { r6 = memw(r19+#0x4); r0 = memw(r0+#0x28) }
2ba98: 00 00 8d 72 728d0000 { r21 = and(r16,#1); memw(r0+#0x0) = r0 }
2ba9c: 14 00 0c 0a 0a0c0014 { r20 = memw(r0+#0x28); r4 = memw(r1+#0x0) }
2baa0: 50 00 00 d5 d5000050 { r0 = memub(r0+#0x5); memh(r5+#0x0) = r0 }
2baa4: a2 00 00 0c 0c0000a2 { r0 = memw(r0+#0x30); r2 = memw(r18+#0x0) }
2baa8: 0e 54 00 00 0000540e <unknown>
2bab0: 0c b1 a6 02 02a6b10c <unknown>
#0 0x000075d9cbdc49c0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:803:3
#1 0x000075d9cbdc21c4 llvm::sys::RunSignalHandlers() /home/alexrp/Source/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#2 0x000075d9cbdc25bd SignalHandler(int) /home/alexrp/Source/llvm-project/llvm/lib/Support/Unix/Signals.inc:415:1
#3 0x000075d9ca245810 (/lib/x86_64-linux-gnu/libc.so.6+0x45810)
#4 0x000075d9ca2a50bc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x000075d9ca2a50bc __pthread_kill_internal ./nptl/pthread_kill.c:89:10
#6 0x000075d9ca2a50bc pthread_kill ./nptl/pthread_kill.c:100:10
#7 0x000075d9ca2456de raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x000075d9ca2288cd internal_signal_block_all ./stdlib/../sysdeps/unix/sysv/linux/internal-signals.h:81:3
#9 0x000075d9ca2288cd __abort_lock_wrlock ./stdlib/abort.c:58:3
#10 0x000075d9ca2288cd abort ./stdlib/abort.c:81:3
#11 0x000075d9ca228830 __assert_perror_fail ./assert/assert-perr.c:31:1
#12 0x00006285be4846ee llvm::ArrayRef<unsigned char>::slice(unsigned long, unsigned long) const (.part.0) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/ArrayRef.h:198:17
#13 0x00006285be484b37 llvm::SmallVectorTemplateCommon<char const*, void>::operator[](unsigned long) const (/opt/llvm-20/bin/llvm-objdump+0x1ab37)
#14 0x00006285be484b37 llvm::opt::Arg::getValue(unsigned int) const /home/alexrp/Source/llvm-project/llvm/include/llvm/Option/Arg.h:126:20
#15 0x00006285be484b37 llvm::objdump::invalidArgValue(llvm::opt::Arg const*) (.cold) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3435:51
#16 0x00006285be4b13b5 disassembleObject(llvm::object::ObjectFile&, llvm::object::ObjectFile const&, (anonymous namespace)::DisassemblerTarget&, std::optional<(anonymous namespace)::DisassemblerTarget>&, llvm::objdump::SourcePrinter&, bool) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:2316:44
#17 0x00006285be4b31e7 llvm::objdump::SourcePrinter::~SourcePrinter() /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/SourcePrinter.h:161:11
#18 0x00006285be4b31e7 disassembleObject(llvm::object::ObjectFile*, bool) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:2660:1
#19 0x00006285be4b630d dumpObject(llvm::object::ObjectFile*, llvm::object::Archive const*, llvm::object::Archive::Child const*) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3321:3
#20 0x00006285be4b84c4 dumpInput(llvm::StringRef) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3403:15
#21 0x00006285be4b9320 void (*std::for_each<__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, void (*)(llvm::StringRef)>(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, __gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>, void (*)(llvm::StringRef)))(llvm::StringRef) /usr/include/c++/14/bits/stl_algo.h:3785:22
#22 0x00006285be4b9320 void (*llvm::for_each<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, void (*)(llvm::StringRef)>(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, void (*)(llvm::StringRef)))(llvm::StringRef) /home/alexrp/Source/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1733:23
#23 0x00006285be4b9320 llvm_objdump_main(int, char**, llvm::ToolContext const&) /home/alexrp/Source/llvm-project/llvm/tools/llvm-objdump/llvm-objdump.cpp:3748:17
#24 0x00006285be486d18 main /home/alexrp/Source/llvm-project/build-20/tools/llvm-objdump/llvm-objdump-driver.cpp:18:1
#25 0x000075d9ca22a338 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#26 0x000075d9ca22a3fb call_init ./csu/../csu/libc-start.c:128:20
#27 0x000075d9ca22a3fb __libc_start_main ./csu/../csu/libc-start.c:347:5
#28 0x00006285be486db5 _start (/opt/llvm-20/bin/llvm-objdump+0x1cdb5)
❯ llvm-objdump --version | head -n2
LLVM (http://llvm.org/):
LLVM version 20.1.6