|
From: Tom H. <to...@co...> - 2007-12-30 13:21:09
|
On 20/12/2007, Bart Van Assche <bar...@gm...> wrote: > There is a small inconsistency in the Valgrind core with regard to the > value of VG_(running_tid) concerning client memory accesses: this > variable contains a valid thread ID for all client memory accesses, > except for some accesses triggered from coregrind/m_main.c. The > attached patch fixes this and also contains some exp-drd > simplifications that became possible because of the fix in the core. > Can you please evaluate this patch and apply it if you consider it > acceptable ? Regression test results are unaffected by the patch -- > the results below are for the x86_64 platform. I was just looking at committing this, but I've run into a bit of a problem, namely that drd segfaults on startup on my machine (with or without this patch) so it's a bit hard for me to test it before I commit it ;-) The segfault is while recording the execution context from sg_init, called as follows: VG_(get_StackTrace)() VG_(record_ExeContext)() sg_init() sg_new() thread_pre_create() drd_pre_thread_create() VG_(main)() [when creating the main thread] I think the problem is that the thread hasn't started executing yet so there is no context to unwind - the PC, FP and SP are all zero... Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |