Page MenuHomePhabricator

Fixing layout of elf-core file related structures

Authored by dvlahovski on Jul 21 2016, 7:14 AM.



The binary layout of prstatus and prpsinfo was wrong.
Some of the member variables where not aligned properly
and others where with a wrong type (e.g. the time related
stuff in prstatus).

I used the structs defined in bfd in binutils to see what the layout
of the elf-core format in these section is.
Note: those structures are only for x86 64 bit elf-core files

This shouldn't have any impact on the functionality, because
lldb actually uses only a few of the member variables of those structs
and they are with a correct type and alignment.

I found this while trying to add/fix the support for
i386 core files (

Diff Detail

Event Timeline

dvlahovski updated this revision to Diff 64883.Jul 21 2016, 7:14 AM
dvlahovski retitled this revision from to Fixing layout of elf-core file related structures.
dvlahovski updated this object.
dvlahovski added a reviewer: labath.
dvlahovski added a subscriber: lldb-commits.
dvlahovski updated this revision to Diff 64902.Jul 21 2016, 8:37 AM

Forgot to add alignas to two members of prstatus

labath edited edge metadata.Jul 22 2016, 1:52 AM

Looks good, just please fix the small stylistic issue.


Please define a separate type for a "64-bit integer aligned to 8 bytes", so we can avoid littering the code with the alignas directives.

So, alignas doesn't work with typedef
We can use a #define but that's kind of ugly

labath accepted this revision.Jul 22 2016, 5:25 AM
labath edited edge metadata.

Ok, nevermind then. Looks good.

This revision is now accepted and ready to land.Jul 22 2016, 5:25 AM
labath closed this revision.Jul 25 2016, 9:18 AM

Submitted in r276406.