================ @@ -0,0 +1,86 @@ +#include <stdlib.h> + +// A simple, deterministic, single-threaded nested call chain. We stop at the +// innermost function and walk the stack. +// +// The breakpoint is in the innermost frame (func_e), and that frame carries +// locals of every kind, so that examining *just the stopped frame* already +// exercises the various memory-read paths in one frame: +// - scalar locals (int / long / double) +// - aggregate locals (a struct and a fixed stack array) +// - pointer locals, including a pointer to heap memory +// +// The outer frames (func_d / func_c) also carry locals of these kinds, so that +// walking the whole stack and examining every frame reads the same variety of +// memory across several frames. +// +// The frame-pointer backchain is expedited at the public stop, so the backtrace +// itself is packet-free; reading the *values* of these locals is not expedited +// and must read memory from the stub. +// +// noinline + a real use of every value keeps every frame and local live (no ---------------- qiyao wrote:
All the `__attribute__((noinline))` are removed. https://github.com/llvm/llvm-project/pull/205897 _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
