UInt nframes;
const UInt n_ips = 10;
Addr ips[n_ips], sps[n_ips];
+ Addr husa;
nframes = VG_(get_StackTrace)(vg_tid, ips, n_ips, sps, 0, 0);
- return (nframes >= 1 ? sps[nframes - 1] : VG_(get_SP)(vg_tid));
+ husa = (nframes >= 1 ? sps[nframes - 1] : VG_(get_SP)(vg_tid));
+ tl_assert(VG_(thread_get_stack_max)(vg_tid)
+ - VG_(thread_get_stack_size)(vg_tid) <= husa
+ && husa <= VG_(thread_get_stack_max)(vg_tid));
+ return husa;
}
static Bool drd_handle_client_request(ThreadId vg_tid, UWord* arg, UWord* ret)