[Lldb-commits] [PATCH] Fixes for 32-bit linux ptrace and RegisterContext issues

Matthew Gardiner mg11 at csr.com
Thu Feb 27 22:31:20 PST 2014


Todd Fiala wrote:
>
> > +        case eTypeUInt64:   return m_data.uint32;
> On the surface this line looks a little suspect but I need to see it in context.
>
Agreed. It's not a really good fix. And it probably breaks a design goal in the RegisterValue. My motivation for making the change was merely that the initialization "zero_bits" writes to dr6/7 of 
IsWatchpointHit/Vacant were assigned as 64 bits, as in:

RegisterValue zero_bits = RegisterValue(uint64_t(0));

but in the business end (ProcessMonitor)

#if __WORDSIZE == 32
     buf = (void*) m_value.GetAsUInt32();
#else
     buf = (void*) m_value.GetAsUInt64();
#endif

these returned as ffffffff (fail_value) due (what I perceive to be) the design goal of RegisterValue (i.e. that switch/case statement).

Better fix is possibly somewhere in RegisterContextPOSIXProcessMonitor?

Anyway, I'll look at the r202428 and see if the issue persists.

thanks
Matt



Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
More information can be found at www.csr.com. Keep up to date with CSR on our technical blog, www.csr.com/blog, CSR people blog, www.csr.com/people, YouTube, www.youtube.com/user/CSRplc, Facebook, www.facebook.com/pages/CSR/191038434253534, or follow us on Twitter at www.twitter.com/CSR_plc.
New for 2014, you can now access the wide range of products powered by aptX at www.aptx.com.



More information about the lldb-commits mailing list