On Mon, Feb 26, 2024 at 09:09:34AM +0100, J B wrote: > H,i > some random tests: ⬢[acme@toolbox pahole]$ git diff diff --git a/syscse.c b/syscse.c index 4a5b199b7a636b9f..b09c8564759dab76 100644 --- a/syscse.c +++ b/syscse.c @@ -18,6 +18,12 @@ static const char *prefix = "sys_"; static size_t prefix_len = 4; +static struct conf_fprintf conf; + +static struct conf_load conf_load = { + .conf_fprintf = &conf, +}; + static bool filter(struct function *f) { if (f->proto.nr_parms != 0) { @@ -156,7 +162,7 @@ int main(int argc, char *argv[]) argp_help(&argp, stderr, ARGP_HELP_SEE, argv[0]); return EXIT_FAILURE; } - err = cus__load_files(cus, NULL, argv + remaining); + err = cus__load_files(cus, &conf_load, argv + remaining); if (err != 0) { cus__fprintf_load_files_err(cus, "syscse", argv + remaining, err, stderr); return EXIT_FAILURE; ⬢[acme@toolbox pahole]$ syscse bla syscse: bla: Invalid argument ⬢[acme@toolbox pahole]$ syscse blaadsfafa syscse: blaadsfafa: Invalid argument ⬢[acme@toolbox pahole]$ At some point conf_load became non-optional for: Program received signal SIGSEGV, Segmentation fault. 0x00007ffff7f4b1ed in dwarf__load_file (cus=0x4052a0, conf=0x0, filename=0x7fffffffe4c3 "bla") at /home/acme/git/pahole/dwarf_loader.c:3626 3626 if (conf->max_hashtable_bits != 0) { Missing separate debuginfos, use: dnf debuginfo-install bzip2-libs-1.0.8-16.fc39.x86_64 elfutils-libelf-0.190-4.fc39.x86_64 elfutils-libs-0.190-4.fc39.x86_64 glibc-2.38-16.fc39.x86_64 libgcc-13.2.1-6.fc39.x86_64 libzstd-1.5.5-4.fc39.x86_64 xz-libs-5.4.4-1.fc39.x86_64 zlib-1.2.13-4.fc39.x86_64 (gdb) bt #0 0x00007ffff7f4b1ed in dwarf__load_file (cus=0x4052a0, conf=0x0, filename=0x7fffffffe4c3 "bla") at /home/acme/git/pahole/dwarf_loader.c:3626 #1 0x00007ffff7f310f5 in cus__load_file (cus=0x4052a0, conf=0x0, filename=0x7fffffffe4c3 "bla") at /home/acme/git/pahole/dwarves.c:2074 #2 0x00007ffff7f31ca1 in cus__load_files (cus=0x4052a0, conf=0x0, filenames=0x7fffffffe1c0) at /home/acme/git/pahole/dwarves.c:2577 #3 0x000000000040177a in main (argc=2, argv=0x7fffffffe1b8) at /home/acme/git/pahole/syscse.c:159 (gdb) Thanks for the report, I'll add it. - Arnaldo > $ ls test.txt > /usr/bin/ls: cannot access 'test.txt': No such file or directory > $ syscse test.txt > Segmentation fault (core dumped) > $ coredumpctl info > Signal: 11 (SEGV) > Stack trace of thread 48074: > #0 0x00007624fb32430b n/a (libdwarves.so.1 + 0x5b30b) > #1 0x00007624fb30b2ff cus__load_file (libdwarves.so.1 + 0x422f> > #2 0x00007624fb312af9 cus__load_files (libdwarves.so.1 + 0x49a> > #3 0x000063ada590a093 main (syscse + 0x1093) > #4 0x00007624fb10ccd0 n/a (libc.so.6 + 0x25cd0) > #5 0x00007624fb10cd8a __libc_start_main (libc.so.6 + 0x25d8a) > #6 0x000063ada590a165 _start (syscse + 0x1165) > ELF object binary architecture: AMD x86-64 > $ touch test.txt > $ syscse test.txt > Segmentation fault (core dumped) > $ <as above> > $ syscse /boot/vmlinuz-linux > Segmentation fault (core dumped) > $ <as above> > > jb >