https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81307
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org, | |jan.kratochvil at redhat dot com, | |palves at redhat dot com --- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- For the N_SLINE stuff, I guess something like: --- dbxout.c.jj 22017-07-29 09:50:38.000000000 +0200 +++ dbxout.c 2017-07-31 14:30:00.474385901 +0200 @@ -1273,7 +1273,8 @@ dbxout_source_line (unsigned int lineno, #ifdef DBX_OUTPUT_SOURCE_LINE DBX_OUTPUT_SOURCE_LINE (asm_out_file, lineno, dbxout_source_line_counter); #else - if (DBX_LINES_FUNCTION_RELATIVE) + if (DBX_LINES_FUNCTION_RELATIVE + && in_cold_section_p == first_function_block_is_cold) { char begin_label[20]; dbxout_begin_stabn_sline (lineno); could cure that part. No idea how the debugger finds out if it is absolute or relative though. Then there is DBX_BLOCKS_FUNCTION_RELATIVE macro which decides if N_LBRAC or N_RBRAC should be relative to start of function or not. Again, no idea how the debugger finds out if it is relative or absolute. So I guess we need help from the debugger folks here...