google / bloaty

Bloaty: a size profiler for binaries
Apache License 2.0
4.66k stars 337 forks source link

How to read the debuginfo from the Chromium output object file #374

Closed Wangzihaooooo closed 4 months ago

Wangzihaooooo commented 5 months ago

$ bloaty -d symbols out/ninja/obj/base/base/activity_analyzer.o FILE SIZE VM SIZE
25.0% 28.0Ki 30.8% 28.0Ki [,debug_info] 19.5% 21.8Ki 24.0% 21.8Ki [,__debug_str] 12.4% 13.9Ki 0.0% 0 [Unmapped] 9.4% 10.6Ki 11.6% 10.6Ki [,debug_line] 9.0% 10.1Ki 11.1% 10.1Ki [,apple_names] 7.8% 8.75Ki 9.6% 8.75Ki [,__debug_ranges] 4.5% 5.02Ki 3.3% 3.00Ki [27 Others] 2.1% 2.30Ki 2.5% 2.23Ki base::debug::GlobalActivityAnalyzer::PrepareAllAnalyzers() 1.4% 1.62Ki 1.1% 1000 std::1::tree<>::find_equal<>() 1.4% 1.59Ki 1.2% 1.10Ki std::1::vector<>::push_back_slow_path<>() 1.2% 1.33Ki 0.5% 452 std::1::tree<>::destroy() 1.0% 1.17Ki 0.0% 0 [Mach-O Headers] 1.0% 1.09Ki 0.7% 632 base::debug::ThreadActivityAnalyzer::ThreadActivityAnalyzer() 0.9% 1.04Ki 1.1% 984 std::1::tree_remove<>() 0.9% 1002 0.6% 520 base::debug::GlobalActivityAnalyzer::UserDataSnapshot::UserDataSnapshot() 0.5% 580 0.2% 196 std::1::tree<>::emplace_hint_unique_key_args<>() 0.4% 510 0.5% 440 base::debug::GlobalActivityAnalyzer::GetModules() 0.4% 508 0.4% 416 std::1::__tree_balance_after_insert<>() 0.4% 476 0.2% 200 base::debug::GlobalActivityAnalyzer::GlobalActivityAnalyzer() 0.4% 419 0.2% 216 std::1::tree<>::__erase_unique<>() 0.4% 418 0.4% 344 base::debug::GlobalActivityAnalyzer::GetLogMessages() 100.0% 112Ki 100.0% 90.9Ki TOTAL

$ cp out/ninja/obj/base/base/activity_analyzer.o out/ninja/obj/base/base/activity_analyzer.stripped $ strip -S -x out/ninja/obj/base/base/activity_analyzer.stripped $: bloaty -d symbols --debug-file=out/ninja/obj/base/base/activity_analyzer.o out/ninja/obj/base/base/activity_analyzer.stripped bloaty: File 'out/ninja/obj/base/base/activity_analyzer.o' has no build ID, cannot be used as a debug file