瀏覽代碼

* 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 -

Jonas Maebe 10 年之前
父節點
當前提交
add015f808
共有 1 個文件被更改,包括 6 次插入0 次删除
  1. 6 0
      compiler/dbgdwarf.pas

+ 6 - 0
compiler/dbgdwarf.pas

@@ -3347,6 +3347,12 @@ implementation
       begin
       begin
         { this function will always terminate the lineinfo block }
         { this function will always terminate the lineinfo block }
         generated_lineinfo := true;
         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);
         FillChar(lastfileinfo,sizeof(lastfileinfo),0);
         currfuncname:=nil;
         currfuncname:=nil;
         currsectype:=sec_code;
         currsectype:=sec_code;