From add015f808f57b2aff34bce2115c7b8a31074d7f Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Mon, 17 Aug 2015 08:47:38 +0000 Subject: [PATCH] * ensure that the dwarf file table contains an entry if the current unit contains any code, even if we cannot generate any debug info for that code (because the default file is file number 1, and if that table is empty some gdb versions crash) git-svn-id: trunk@31335 - --- compiler/dbgdwarf.pas | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/compiler/dbgdwarf.pas b/compiler/dbgdwarf.pas index f3aab19426..daa30fab2e 100644 --- a/compiler/dbgdwarf.pas +++ b/compiler/dbgdwarf.pas @@ -3347,6 +3347,12 @@ implementation begin { this function will always terminate the lineinfo block } generated_lineinfo := true; + { if this unit only contains code without debug info (implicit init + or final etc), make sure the file table contains at least one entry + (the main source of the unit), because normally this table gets + populated via calls to get_file_index and that won't happen in this + case } + get_file_index(current_module.sourcefiles.get_file(1)); FillChar(lastfileinfo,sizeof(lastfileinfo),0); currfuncname:=nil; currsectype:=sec_code;