cargo-call-stack, part 2: getting call graph information from rustc

April 13, 2019

In a previous post I described the current implementation of cargo-call-stack, a static stack usage analysis tool. In the second part of that post I described the problems the tool runs into when dealing with indirect function calls (both function pointer calls and dynamic dispatch) and proposed improving the output of the tool by having rustc inject type information in the LLVM IR it produces. While discussing that idea with rustc developers they noted that the compiler could emit information that’s more relevant to call graph analysis than just the signatures of functions and trait methods. ... Read more

Implementing a static stack usage analysis tool

March 13, 2019

(This blog covers the implementation details of cargo-call-stack v0.1.2. If you are only interested in using the tool these tweets and the README will give you an idea of what it can do.) Motivation So, why would you ever want to analyze the stack usage of your program at compile time? The obvious answer is when you want to know if your application can stack overflow at runtime without actually running your program. ... Read more

Rust your ARM microcontroller!

April 28, 2017

IMPORTANT! READ THIS! Hello there! This article is outdated and following it will only confuse you. Check out the embedded Rust book and the rest of the embedded WG bookshelf for up to date and maintained documentation on embedded Rust development. If you still want to read this post, for historical reasons and what now, scroll down. Want to program your microcontroller in Rust but your microcontroller vendor doesn’t provide a Rust HAL / SDK? ... Read more

Creative Commons License
Jorge Aparicio