You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by "Lee, Lup Yuen" <lu...@appkaki.com> on 2023/03/05 04:16:16 UTC

Article: (Clickable) Call Graph for NuttX on PinePhone

Last week we ran NuttX on Unicorn Emulator and we hit a baffling Arm64
Exception. In this article we’ll create some tools to troubleshoot the
exception…

1.  Render the Dynamic Call Graph for NuttX, to understand how it boots

2.  Make it Clickable, so we can browse the NuttX Source Code as we explore
the Call Graph

3.  We’ll use a Block Execution Hook in Unicorn Emulator to generate the
Call Graph with Rust

4.  And call the Rust Libraries addr2line and gimli to map the Code
Addresses to NuttX Kernel Functions

5.  Thanks to the (Clickable) Call Graph, we’ll describe the complete Boot
Sequence of NuttX on PinePhone

6.  And explain how we might do Automated Daily Build and Test for NuttX on
PinePhone

https://lupyuen.github.io/articles/unicorn2

Lup

Re: Article: (Clickable) Call Graph for NuttX on PinePhone

Posted by "Alan C. Assis" <ac...@gmail.com>.
Hi Lup,

This Call Graph solution that you used is very useful!

I used a call graph solution called egypt some time ago to get a
better vision of a legacy project that I should take care, I wrote
down the steps here:

https://acassis.wordpress.com/2020/05/08/creating-call-graph-function-for-c-program-compiled-with-gcc/

But it only generated static call graph images. This solution we found
is way more complete.

Thank you again for another great post!

BR,

Alan

On 3/5/23, Lee, Lup Yuen <lu...@appkaki.com> wrote:
> Last week we ran NuttX on Unicorn Emulator and we hit a baffling Arm64
> Exception. In this article we’ll create some tools to troubleshoot the
> exception…
>
> 1.  Render the Dynamic Call Graph for NuttX, to understand how it boots
>
> 2.  Make it Clickable, so we can browse the NuttX Source Code as we explore
> the Call Graph
>
> 3.  We’ll use a Block Execution Hook in Unicorn Emulator to generate the
> Call Graph with Rust
>
> 4.  And call the Rust Libraries addr2line and gimli to map the Code
> Addresses to NuttX Kernel Functions
>
> 5.  Thanks to the (Clickable) Call Graph, we’ll describe the complete Boot
> Sequence of NuttX on PinePhone
>
> 6.  And explain how we might do Automated Daily Build and Test for NuttX on
> PinePhone
>
> https://lupyuen.github.io/articles/unicorn2
>
> Lup
>