[PATCH] libdwfl: Use process_vm_readv when available.
Dmitry V. Levin
Wed Mar 28 21:42:00 GMT 2018
On Wed, Mar 28, 2018 at 04:33:26PM +0200, Mark Wielaard wrote:
> On Tue, 2018-03-20 at 23:32 +0100, Mark Wielaard wrote:
> > On Sun, Mar 18, 2018 at 01:43:23AM +0100, Mark Wielaard wrote:
> > > If possible use process_vm_readv to read 4K blocks instead of fetching
> > > each word individually with ptrace. For unwinding this often means we
> > > only have to do one process_vm_readv of the stack instead of dozens of
> > > ptrace calls. There is one 4K cache per process, cleared whenever a
> > > thread is detached.
> > It seems to work well, but the GCC undefined sanitizer
> > (configure --enable-sanitize-undefined) found an issue in the
> > run-backtrace-native-biarch.sh testcase (from x86_64 to i686)
> > when reading unaligned data. To fix that don't assign to the
> > Dwarf_Word directly when unaligned, but use memcpy (which gcc
> > seems to inline).
> I pushed this to master now. Adding some comments about the word size
> being actually architecture defined even though we use a 64bit
> Dwarf_Word everywhere.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 801 bytes
Desc: not available
More information about the Elfutils-devel