[cfe-dev] main functions of clang

eyasu getahun eya.get at gmail.com
Mon Dec 12 07:15:20 PST 2011


Thanks a lot james and Hans, It is really helpful. Have great time!.

On Mon, Dec 12, 2011 at 11:00 PM, James Molloy <james.molloy at arm.com> wrote:

>  Just type “gdb –args” before your command line.****
>
> ** **
>
> You’ll need to unwrap the driver invocation from the actual  cc1
> invocation by giving the –### argument to clang. This will cause it to
> print out its cc1 command line:****
>
> ** **
>
> ./bin/clang –ast-print –S test.c –o - -###****
>
> ** **
>
> Then take that and run it under gdb:****
>
> ** **
>
> Gdb –args “./bin/clang” “-cc1” ...****
>
> ** **
>
> And set a breakpoint where you care:****
>
> ** **
>
> (gdb) b StmtPrinter.cpp:49****
>
> (gdb) r****
>
> ** **
>
> Breakpoint 1, (anonymous namespace)::StmtPrinter::PrintStmt
> (this=0xffffabd0, S=0xad9a438, SubIndent=2)****
>
> ** **
>
> Done.****
>
> ** **
>
> Cheers,****
>
> ** **
>
> James****
>
> ** **
>
> *From:* eyasu getahun [mailto:eya.get at gmail.com]
> *Sent:* 12 December 2011 14:37
> *To:* Hans Wennborg
> *Cc:* James Molloy; cfe-dev at cs.uiuc.edu
>
> *Subject:* Re: [cfe-dev] main functions of clang****
>
>  ** **
>
>
> Hi Hans,
>
> I can't use debugger. Because am using Linux  command line to run clang.
> There is no debugging option at Linux. Thanks for the idea.
> ****
>
>  On Mon, Dec 12, 2011 at 10:23 PM, Hans Wennborg <hans at chromium.org>
> wrote:****
>
> On Mon, Dec 12, 2011 at 2:03 PM, eyasu getahun <eya.get at gmail.com> wrote:
> >
> > Hey James,
> >
> > Thanks for the command line option. But where is the function called? I
> mean
> > in which main method of clang it is called? We know that every function
> must
> > be called at least at one main method/function to be executed. Let me
> make
> > it clear like this way:
> >
> > int main ()//main method
> > {
> > S->Printpretty(context);
> > }
> >
> > So, which main method is calling our printpretty() function? Hope now its
> > clear for you.****
>
> Hi Eyasu,
>
> The best way to find out where a function is called from is to run
> Clang in a debugger, set a breakpoint in the function you are asking
> about (StmtPrinter::PrintStmt), and look at the stack trace.
>
>  - Hans****
>
>
>
>
> --
> *With Best Regards,
>
> ===========================================
> Eyasu Getahun*
>
> 1 Fusionopolis way, #08-10 Connexis North Tower
> Singapore 138632, Singapore
> Mobile: +393279239907
> *===========================================*****
>



-- 
*With Best Regards,

===========================================
Eyasu Getahun*

1 Fusionopolis way, #08-10 Connexis North Tower
Singapore 138632, Singapore
Mobile: +393279239907
*===========================================
*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20111212/db7aacb5/attachment.html>


More information about the cfe-dev mailing list