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
>