Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #30895

Worst case stack

From pozz <pozzugno@gmail.com>
Newsgroups comp.arch.embedded
Subject Worst case stack
Date 2021-11-17 17:30 +0100
Organization A noiseless patient Spider
Message-ID <sn3anb$9ad$1@dont-email.me> (permalink)

Show all headers | View raw


I found a nice tool[1] on GitHub.

I run it on one of my embedded projects and after a couple[2] of fixes, 
it eventually printed some good output.

There were many unresolved functions, mainly from libc, C runtime, 
interrupts. I defined all of them in .msu, so now in the final output 
there aren't unresolved functions.

Now there's another big problem. Many functions have an unbounded stack 
usage and I'm quite sure this depends on function pointers.

For example, I use this[3] printf library. It uses function pointer to 
emit characters: sprintf calls _vsnprintf() with _out_buffer() function 
pointer; printf calls _vsnprintf() with _out_char() function pointer.

So sprintf-like functions have an unbounded stack usage, because the 
poor tool wcs.py isn't able to understand that there are only a few 
possibilities for the first argument (the function pointer) of _vsnprintf().

It's a pity it isn't possible to set a list of functions for certain 
functions pointers so wcs.py could print a better result.





[1] https://github.com/PeterMcKinnis/WorstCaseStack

[2] The tool emitted some errors on a few WEAK functions that are 
interrupt handlers. I used .msu file to set a stack usage for those.

Another problem is in print_all_fxns() function and the access to 
fxn_dict2['demangledName'].
For some functions (I think the functions defined in .msu) there weren't 
'demangledName' so I print the simple 'name'.

[3] https://github.com/mpaland/printf

Back to comp.arch.embedded | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Worst case stack pozz <pozzugno@gmail.com> - 2021-11-17 17:30 +0100
  Re: Worst case stack Paul Rubin <no.email@nospam.invalid> - 2021-11-17 12:28 -0800
    Re: Worst case stack David Brown <david.brown@hesbynett.no> - 2021-11-18 10:16 +0100
  Re: Worst case stack Clifford Heath <no.spam@please.net> - 2021-11-18 10:21 +1100
    Re: Worst case stack pozz <pozzugno@gmail.com> - 2021-11-18 08:47 +0100

csiph-web