I was trying to use SymSan to compile Binutils to try out the execution details of SymSan. However, SymSan failed to compile one of the tools objdump. Here is the stack dump:
Stack dump:
0. Program arguments: clang-12 -DHAVE_CONFIG_H -I. -I../../binutils -I. -I../../binutils -I../bfd -I../../binutils/../bfd -I../../binutils/../include -DLOCALEDIR=\"/usr/local/share/locale\" -Dbin_dummy_emulation=bin_vanilla_emulation -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Werror -I../../binutils/../zlib -g -O2 -MT objdump.o -MD -MP -MF .deps/objdump.Tpo -c -o objdump.o -DOBJDUMP_PRIVATE_VECTORS= ../../binutils/objdump.c -Xclang -load -Xclang /home1/qy/symsan/install/bin/../lib/symsan/libTaintPass.so -mllvm -taint-abilist=/home1/qy/symsan/install/bin/../lib/symsan/dfsan_abilist.txt -mllvm -taint-abilist=/home1/qy/symsan/install/bin/../lib/symsan/zlib_abilist.txt -pie -fpic -Qunused-arguments -fno-vectorize -fno-slp-vectorize -g -O3 -funroll-loops
1. <eof> parser at end of file
2. Per-module optimization passes
3. Running pass 'Taint Pass' on module '../../binutils/objdump.c'.
#0 0x000055d93372a4e0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home1/qy/llvm_12.0.0/llvm/lib/Support/Unix/Signals.inc:565:22
#1 0x000055d93372a59b PrintStackTraceSignalHandler(void*) /home1/qy/llvm_12.0.0/llvm/lib/Support/Unix/Signals.inc:632:1
#2 0x000055d933728211 llvm::sys::RunSignalHandlers() /home1/qy/llvm_12.0.0/llvm/lib/Support/Signals.cpp:71:20
#3 0x000055d933729d01 llvm::sys::CleanupOnSignal(unsigned long) /home1/qy/llvm_12.0.0/llvm/lib/Support/Unix/Signals.inc:361:31
#4 0x000055d93365a910 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home1/qy/llvm_12.0.0/llvm/lib/Support/CrashRecoveryContext.cpp:75:5
#5 0x000055d93365ae49 CrashRecoverySignalHandler(int) /home1/qy/llvm_12.0.0/llvm/lib/Support/CrashRecoveryContext.cpp:389:1
#6 0x00007f5064a40420 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14420)
#7 0x00007f50644dd00b raise /build/glibc-SzIz7B/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#8 0x00007f50644bc859 abort /build/glibc-SzIz7B/glibc-2.31/stdlib/abort.c:81:7
#9 0x00007f50644bc729 get_sysdep_segment_value /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:509:8
#10 0x00007f50644bc729 _nl_load_domain /build/glibc-SzIz7B/glibc-2.31/intl/loadmsgcat.c:970:34
#11 0x00007f50644cdfd6 (/lib/x86_64-linux-gnu/libc.so.6+0x33fd6)
#12 0x000055d932b6e02a llvm::CallInst::init(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, llvm::Twine const&) /home1/qy/llvm_12.0.0/llvm/lib/IR/Instructions.cpp:444:5
#13 0x00007f506445a9aa llvm::CallInst::CallInst(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, llvm::Twine const&, llvm::Instruction*) /home1/qy/llvm-project/llvm/include/llvm/IR/Instructions.h:1716:3
#14 0x00007f506445a6ed llvm::CallInst::Create(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::ArrayRef<llvm::OperandBundleDefT<llvm::Value*> >, llvm::Twine const&, llvm::Instruction*) /home1/qy/llvm-project/llvm/include/llvm/IR/Instructions.h:1514:9
#15 0x00007f5064453fec llvm::IRBuilderBase::CreateCall(llvm::FunctionType*, llvm::Value*, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&, llvm::MDNode*) /home1/qy/llvm-project/llvm/include/llvm/IR/IRBuilder.h:2437:20
#16 0x00007f506443e746 llvm::IRBuilderBase::CreateCall(llvm::FunctionCallee, llvm::ArrayRef<llvm::Value*>, llvm::Twine const&, llvm::MDNode*) /home1/qy/llvm-project/llvm/include/llvm/IR/IRBuilder.h:2458:5
#17 0x00007f5064434957 (anonymous namespace)::TaintFunction::visitGEPInst(llvm::GetElementPtrInst*) /home1/qy/symsan/instrumentation/TaintPass.cpp:1757:15
#18 0x00007f5064433f9b (anonymous namespace)::TaintVisitor::visitGetElementPtrInst(llvm::GetElementPtrInst&) /home1/qy/symsan/instrumentation/TaintPass.cpp:1775:1
#19 0x00007f506442bb2d llvm::InstVisitor<(anonymous namespace)::TaintVisitor, void>::visitGetElementPtr(llvm::GetElementPtrInst&) /home1/qy/llvm-project/llvm/include/llvm/IR/Instruction.def:174:1
#20 0x00007f506442b27e llvm::InstVisitor<(anonymous namespace)::TaintVisitor, void>::visit(llvm::Instruction&) /home1/qy/llvm-project/llvm/include/llvm/IR/Instruction.def:174:1
#21 0x00007f506442a26d llvm::InstVisitor<(anonymous namespace)::TaintVisitor, void>::visit(llvm::Instruction*) /home1/qy/llvm-project/llvm/include/llvm/IR/InstVisitor.h:112:34
#22 0x00007f5064426b18 (anonymous namespace)::Taint::runOnModule(llvm::Module&) /home1/qy/symsan/instrumentation/TaintPass.cpp:1255:28
#23 0x000055d932bb78ff (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home1/qy/llvm_12.0.0/llvm/lib/IR/LegacyPassManager.cpp:1550:20
#24 0x000055d932bb29fa llvm::legacy::PassManagerImpl::run(llvm::Module&) /home1/qy/llvm_12.0.0/llvm/lib/IR/LegacyPassManager.cpp:541:13
#25 0x000055d932bb81d5 llvm::legacy::PassManager::run(llvm::Module&) /home1/qy/llvm_12.0.0/llvm/lib/IR/LegacyPassManager.cpp:1678:1
#26 0x000055d933b124e7 (anonymous namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) /home1/qy/llvm_12.0.0/clang/lib/CodeGen/BackendUtil.cpp:1014:53
#27 0x000055d933b166bb clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) /home1/qy/llvm_12.0.0/clang/lib/CodeGen/BackendUtil.cpp:1598:27
#28 0x000055d934df9796 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home1/qy/llvm_12.0.0/clang/lib/CodeGen/CodeGenAction.cpp:344:24
#29 0x000055d9368c1e93 clang::ParseAST(clang::Sema&, bool, bool) /home1/qy/llvm_12.0.0/clang/lib/Parse/ParseAST.cpp:178:14
#30 0x000055d9344203cd clang::ASTFrontendAction::ExecuteAction() /home1/qy/llvm_12.0.0/clang/lib/Frontend/FrontendAction.cpp:1056:11
#31 0x000055d934df6102 clang::CodeGenAction::ExecuteAction() /home1/qy/llvm_12.0.0/clang/lib/CodeGen/CodeGenAction.cpp:1083:5
#32 0x000055d93441fc8c clang::FrontendAction::Execute() /home1/qy/llvm_12.0.0/clang/lib/Frontend/FrontendAction.cpp:953:38
#33 0x000055d93437543a clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home1/qy/llvm_12.0.0/clang/lib/Frontend/CompilerInstance.cpp:949:42
#34 0x000055d9345b8ca7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home1/qy/llvm_12.0.0/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:38
#35 0x000055d93063cae5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home1/qy/llvm_12.0.0/clang/tools/driver/cc1_main.cpp:240:40
#36 0x000055d93063091e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /home1/qy/llvm_12.0.0/clang/tools/driver/driver.cpp:330:20
#37 0x000055d934261a21 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()::operator()() const /home1/qy/llvm_12.0.0/clang/lib/Driver/Job.cpp:404:32
#38 0x000055d9342622e4 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const::'lambda'()>(long) /home1/qy/llvm_12.0.0/llvm/include/llvm/ADT/STLExtras.h:186:40
#39 0x000055d93364df1c llvm::function_ref<void ()>::operator()() const /home1/qy/llvm_12.0.0/llvm/include/llvm/ADT/STLExtras.h:209:62
#40 0x000055d93365b05c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home1/qy/llvm_12.0.0/llvm/lib/Support/CrashRecoveryContext.cpp:425:10
#41 0x000055d934261c30 clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, bool*) const /home1/qy/llvm_12.0.0/clang/lib/Driver/Job.cpp:404:7
#42 0x000055d934211ee2 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&) const /home1/qy/llvm_12.0.0/clang/lib/Driver/Compilation.cpp:195:22
#43 0x000055d93421226a clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const /home1/qy/llvm_12.0.0/clang/lib/Driver/Compilation.cpp:248:53
#44 0x000055d934222040 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) /home1/qy/llvm_12.0.0/clang/lib/Driver/Driver.cpp:1517:28
#45 0x000055d93063193f main /home1/qy/llvm_12.0.0/clang/tools/driver/driver.cpp:502:39
#46 0x00007f50644be083 __libc_start_main /build/glibc-SzIz7B/glibc-2.31/csu/../csu/libc-start.c:342:3
#47 0x000055d93062efbe _start (/home1/qy/llvm_12.0.0/install_12_0_0/bin/clang-12+0x2e03fbe)
clang-12: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 12.0.0 (https://github.com/llvm/llvm-project.git d28af7c654d8db0b68c175db5ce212d74fb5e9bc)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home1/qy/llvm_12.0.0/install_12_0_0/bin
clang-12: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-12: note: diagnostic msg: /tmp/objdump-ac190e.c
clang-12: note: diagnostic msg: /tmp/objdump-ac190e.sh
clang-12: note: diagnostic msg:
********************