Skip to content

Conversation

@EricRahm
Copy link
Collaborator

@EricRahm EricRahm commented Nov 4, 2025

These changes should improve the support for 32-bit elf binaries. They add part of the handling for DW_EH_PE_sabsptr from #185. This got things further, but there were still issues. By wiring up the is_64bit flag rather than hardcoding it to true in a few places we get functioning output from bloaty with the example binary from #141:

% build/141/bloaty /tmp/issue141/bin -d compileunits
    FILE SIZE        VM SIZE
 --------------  --------------
   1.9%   319Ki  83.3%  18.1Mi    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/direct/image-direct.cpp
  45.6%  7.32Mi   8.1%  1.75Mi    [308 Others]
  15.4%  2.48Mi   0.0%       0    [section .symtab]
   6.7%  1.08Mi   0.5%   101Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/gamepix.cpp
   3.7%   609Ki   0.7%   156Ki    /home/caiiiycuk/emscripten/monsters/common/classes/Field.cpp
   3.4%   557Ki   0.3%  69.3Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/async.cpp
   0.2%  24.8Ki   2.4%   523Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/zframework/zframework-1.5-pm-2012/zframework/gfx/nanojpeg.cpp
   3.0%   485Ki   2.2%   485Ki    [section .rodata]
   2.7%   442Ki   0.1%  28.2Ki    /home/caiiiycuk/emscripten/monsters/gpx/soundmgrimpl.cpp
   2.2%   360Ki   0.3%  75.0Ki    /home/caiiiycuk/emscripten/monsters/gpx/res.cpp
   1.9%   317Ki   0.1%  33.0Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/fs.cpp
   1.9%   313Ki   0.2%  40.1Ki    /home/caiiiycuk/emscripten/monsters/gpx/iap.cpp
   1.7%   274Ki   0.2%  39.8Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/zframework/zframework-1.5-pm-2012/zframework/visual/ScreenSizeMgr.cpp
   1.7%   273Ki   0.1%  31.4Ki    /home/caiiiycuk/emscripten/monsters/gpx/fontgenerator.cpp
   1.6%   265Ki   0.5%   102Ki    /home/caiiiycuk/emscripten/monsters/common/classes/GameController.cpp
   1.3%   206Ki   0.3%  61.1Ki    /home/caiiiycuk/emscripten/monsters/common/classes/GameScene.cpp
   1.2%   200Ki   0.1%  26.3Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/storage.cpp
   1.1%   181Ki   0.1%  13.0Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/c/profiler.cpp
   1.0%   159Ki   0.2%  36.8Ki    /home/caiiiycuk/emscripten/monsters/common/classes/MVSLPreferences.cpp
   1.0%   156Ki   0.3%  73.6Ki    /home/caiiiycuk/emscripten/monsters/common/classes/LevelSelectController.cpp
   0.9%   145Ki   0.1%  29.8Ki    /home/caiiiycuk/emscripten/sdk/gamepix/virtualenv/zframework/zframework-1.5-pm-2012/zframework/helpers/Banners/BannerSystemManager.cpp
 100.0%  16.0Mi 100.0%  21.7Mi    TOTAL

This also adds a test.

Fixes #141

EricRahm and others added 3 commits December 1, 2025 22:17
Running bloaty against a 32-bit binary with a `DW_EH_PE_sabstr` field
resulted in a `bloaty: Unexpected eh_frame format value: 8` error.

This adds related DWARF constants and handling of `sabsptr`.

Issue google#141

Co-authored-by: Aleksei Koziatinskii <ak239spb@gmail.com>
Fix TODOs to fully wire up the `is_64bit` value rather than hardcoding
it to true. This fixes failures reading 32-bit binaries.
Add a test that verifies `DW_EH_PE_sabsptr` is handled correctly.
@EricRahm
Copy link
Collaborator Author

EricRahm commented Dec 1, 2025

@haberman This is a small change following up on issue #141. I rebased PR #185 and folded in your previous feedback as well as cleaning up some todo's around hardcoding is_64bit. I've included a lit test as well.

@haberman
Copy link
Member

haberman commented Dec 1, 2025

LGTM, thanks for the test!

@EricRahm EricRahm merged commit 8ac0465 into google:main Dec 1, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bloaty: Unexpected eh_frame format value: 8

2 participants