I wrote a very simple pass. The code as follows(rude.cpp): #include "llvm/Pass.h" #include "llvm/IR/Function.h" #include "llvm/Support/raw_ostream.h" #include "llvm/IR/BasicBlock" using namespace llvm; namespace { struct rude : public FunctionPass { static char ID; rude() : FunctionPass(ID) {} bool runOnFunction(Function &F) override { errs() << "Hello,I'm rude: "; errs().write_escaped(F.getName()) << '\n'; for(Function::iterator b=F.begin(),be=F.end();b!=be;++b) { errs()<<"\n\tBB:"; for(BasicBlock::iterator i=b->begin(),ie=b->end();i!=ie;++i) { errs()<<"\n\tanalysis instructions"; } } return false; } }; } char Hello::ID = 9; static RegisterPass<rude> X("rude", "rude Pass", false, false); then I use command : opt -load XX/Debug+Assertion/rude.so <test1.bc> /dev/null to run the rude.so file . the error as follows: #0 0x222Bd05 llvm::sys::PrintStackTrace(llvm::raw_ostream&) XX/LLVM3.7.0/llvm/lib/Support/Unix/Signals.inc/:437:0 #1 0x222901a PrintStackTraceSignalHandler(void*) XX/LLVM3.7.0/llvm/lib/Support/Unix/Signal.inc:495:0 .... I really don't know why it is. can anyone help me? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151031/38947345/attachment.html>