tree 7c61a32ed1e94c339c788f3ab9e19ff7dafc90f8
parent 39141e76b6471416fad93e101d512dedec969596
author gmarin13 <gmarin13@users.noreply.github.com> 1611105641 -0800
committer GitHub <noreply@github.com> 1611105641 -0800
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJgB4VpCRBK7hj4Ov3rIwAAdHIIAIzqjbYzOrP10X2SIqFlbuiv
 fK6tXyo0zeK3ZahtTe/1cwgktrfnk2v001px+MqzmGWYdcKFb0xWcHLoHRBoeI7m
 tnJgv6ak4pvTuqZIP6l5Wx7fEWrDk1NUh9HsPwq8kc0RqSy6Lp6qoEVyZ4cf1Dst
 VSsGLgloyr6HiK4QIvf6penND8QkUSNM6NhN7D0roUaef4edXXAw1uGc1jZIc3ZZ
 nIiguiNwqM3AnNrA0SHRAkkhTNPG/dot/WWOdhlZTM/Up9YMnzz0TpWMlrhHjQmI
 qAdiDL6OxKrxOKJIYn+dwlXyZniQUSpftOZdTcjrEzKgj1e5VpT78Zk1p2Okk2E=
 =jxBI
 -----END PGP SIGNATURE-----
 

Enable symbolization of data objects with the llvm symbolizer (#598)

* Compute the correct base offset for non-executable runtime mappings.

For user space executables, find the segment associated with the current mapping
and use its header in the call to GetBase, instead of using the program header
for the segment that includes the .text section.

This change is needed for all local symbolizers that handle ELF files.

* Enable the llvn-symbolizer to symbolize data addresses.

For data addresses, we need to issue "DATA <binary_name> <address>" commands,
while for code addresses, we issue "CODE <binary_name> <address>" commands.

Right now, the frames for data addresses include the symbol start address and
size in the filename field.