Hi Simon, yes, that's fine with me. Thanks for cleaning it up and pushing it. For reference, I attached the adjusted patch with the compunit nullptr check removed, matching your suggestion. Best, Ronald On 6/3/26 17:32, Simon Marchi wrote: > On 6/3/26 8:11 AM, Ronald Hecht wrote: >> |Hi, this is the patch from PR tdep/34198. It fixes an internal >> segmentation fault in z80_skip_prologue when setting "break main" on >> some Z80 binaries. "break *main" works, which points at the >> prologue/SAL path. Regression-tested manually with the reproducer from >> the PR. Thanks, Ronald >> https://sourceware.org/bugzilla/show_bug.cgi?id=34198 | >> diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c >> index f7e207d02ec3..f2e9b09e3b91 100644 >> --- a/gdb/z80-tdep.c >> +++ b/gdb/z80-tdep.c >> @@ -495,12 +495,17 @@ z80_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) >> if (prologue_end != 0) >> { >> struct symtab_and_line prologue_sal = find_sal_for_pc (func_addr, 0); >> - struct compunit_symtab *compunit = prologue_sal.symtab->compunit (); >> - const char *debug_format = compunit->debugformat (); >> - >> - if (debug_format != NULL && >> - !strncasecmp ("dwarf", debug_format, strlen("dwarf"))) >> - return std::max (pc, prologue_end); >> + if (prologue_sal.symtab != nullptr) >> + { >> + struct compunit_symtab *compunit = prologue_sal.symtab->compunit (); >> + if (compunit != nullptr) > symtab->compunit() can't return nullptr, so I wouldn't add this check > (that method should be modified to return a reference, to make it > clear). > > The patch looks good otherwise. Would you be ok with me pushing your > patch with that change? > > Simon