Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
85fc17c
Support type definitions inside functions in dwarf dump
dbalatoni13 Dec 17, 2025
864afb4
Omit unnecessary/duplicate dwarf info
dbalatoni13 Dec 17, 2025
afd2f01
Move total size to before struct so that clangd picks it up
dbalatoni13 Dec 17, 2025
ef83fed
Subroutine typedefs and subroutine block inner types
dbalatoni13 Dec 18, 2025
3213c03
Handle override, const, volatile, virtual, static function logic
dbalatoni13 Dec 18, 2025
02ea35e
Omit return type of ctors and dtors
dbalatoni13 Dec 18, 2025
177e41d
Add back the nested template thing because it's actually useful
dbalatoni13 Dec 18, 2025
7c038f7
Return type omitting bug fix
dbalatoni13 Dec 18, 2025
dfcc295
Add static struct members
dbalatoni13 Dec 18, 2025
102e0f5
Fix formatting
dbalatoni13 Dec 18, 2025
a4ce8ed
Handle typedef specification attribute
dbalatoni13 Dec 18, 2025
daa38c5
Avoid adding duplicate inline params
dbalatoni13 Dec 18, 2025
ae9b546
Handle non-overriden GCC constructors and destructors
dbalatoni13 Dec 18, 2025
b67cd7f
clippy
dbalatoni13 Dec 18, 2025
c443de7
Cargo fmt
dbalatoni13 Dec 18, 2025
1ccc792
Apply clippy's suggestion
dbalatoni13 Dec 18, 2025
0634be0
Extract producer and correctly handle MWCC static members
dbalatoni13 Dec 18, 2025
009ae07
Enable static member function detection only for GCC
dbalatoni13 Dec 18, 2025
033a39b
Fix bug where function parameter wasn't applied if both names were None
dbalatoni13 Dec 19, 2025
d005426
Fix gcc boolean logic and omit __in_chrg
dbalatoni13 Dec 19, 2025
bca6fde
Add parent fallback for PS2 MW
dbalatoni13 Dec 19, 2025
175eb9e
Demangle mangled function names
dbalatoni13 Dec 19, 2025
0f5acab
Have inlines and blocks in the same vec to keep their correct order
dbalatoni13 Dec 19, 2025
4f9941b
Change comment
dbalatoni13 Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ filetime = "0.2"
fixedbitset = "0.5"
flagset = { version = "0.4", features = ["serde"] }
glob = "0.3"
gnuv2_demangle = "0.4"
hex = "0.4"
indent = "0.1"
indexmap = "2.6"
Expand Down
8 changes: 5 additions & 3 deletions src/cmd/dwarf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ use typed_path::Utf8NativePathBuf;
use crate::{
util::{
dwarf::{
process_compile_unit, process_cu_tag, process_overlay_branch, read_debug_section,
should_skip_tag, tag_type_string, AttributeKind, TagKind,
parse_producer, process_compile_unit, process_cu_tag, process_overlay_branch,
read_debug_section, should_skip_tag, tag_type_string, AttributeKind, TagKind,
},
file::buf_writer,
path::native_path,
Expand Down Expand Up @@ -166,7 +166,8 @@ where
}

let mut reader = Cursor::new(&*data);
let info = read_debug_section(&mut reader, obj_file.endianness().into(), args.include_erased)?;
let mut info =
read_debug_section(&mut reader, obj_file.endianness().into(), args.include_erased)?;

for (&addr, tag) in &info.tags {
log::debug!("{}: {:?}", addr, tag);
Expand Down Expand Up @@ -210,6 +211,7 @@ where
writeln!(w, "\n/*\n Compile unit: {}", unit.name)?;
if let Some(producer) = unit.producer {
writeln!(w, " Producer: {producer}")?;
info.producer = parse_producer(&producer);
}
if let Some(comp_dir) = unit.comp_dir {
writeln!(w, " Compile directory: {comp_dir}")?;
Expand Down
Loading