[LLVMdev] Segmentation Fault of BasicCallGraph?
Nick Lewycky
nicholas at mxc.ca
Wed Oct 6 21:06:37 PDT 2010
Shuying Liang wrote:
> Hi,
>
> I did a little experiment, basically to extract implemented CallGraph
> to be a "new" pass with different registered name, and run the "new"
> pass, but the result always gives out Segmentation Fault... I am
> probably missing
> sth?
>
> Implemented another new class,
> class BasicCallGraph2 : public ModulePass, public CallGraph {
> .....
> ...
> }
> The inside code is exact same as BasicCallGraph, except registered
> passname to be testcgn and the information of the pass. then after
> enabling and run the new pass, on a test.bc file, there is always a
> segmentation fault.
>
> 0 libLLVM-2.7.so.1 0x00007f5cd87b1d2f
> 1 libLLVM-2.7.so.1 0x00007f5cd87b238d
> 2 libpthread.so.0 0x00007f5cd7ba38f0
> 3 MyPass.so 0x00007f5cd6a538d4
> llvm::CallGraphNode::addCalledFunction(llvm::CallSite,
> llvm::CallGraphNode*) + 100
> 4 MyPass.so 0x00007f5cd6a519aa
> 5 MyPass.so 0x00007f5cd6a52dd1
> 6 libLLVM-2.7.so.1 0x00007f5cd8432e08
> llvm::MPPassManager::runOnModule(llvm::Module&) + 376
> 7 libLLVM-2.7.so.1 0x00007f5cd8432f2b
> llvm::PassManagerImpl::run(llvm::Module&) + 107
> 8 opt 0x0000000000415d53 main + 2003
> 9 libc.so.6 0x00007f5cd6c75c4d __libc_start_main + 253
> 10 opt 0x00000000004095c9
> Stack dump:
> 0. Program arguments: opt -load ../../../Release/lib/MyPass.so -testcgn
> 1. Running pass 'print out the call grpah node contruction process' on
> module '<stdin>'.
> Segmentation fault
>
> What is going on? what makes the addCalledFunction failed? I would
> really appreciate your answers.......
Your pass is using multiple inheritance. Have you implemented
getAdjustedAnalysisPointer for your pass?
Nick
More information about the llvm-dev
mailing list