浏览代码

Avoid writing characters after sym.value.len for conststring constant symbols

git-svn-id: trunk@48688 -
(cherry picked from commit 6a408fe97e037c63350314dbebba5b356334a730)
pierre 4 年之前
父节点
当前提交
09f6a2ad0c
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      compiler/dbgstabs.pas

+ 8 - 4
compiler/dbgstabs.pas

@@ -1599,10 +1599,14 @@ implementation
           conststring:
             begin
               if sym.value.len<200 then
-                if target_dbg.id=dbg_stabs then
-                  st:='s'''+backspace_quote(octal_quote(strpas(pchar(sym.value.valueptr)),[#0..#9,#11,#12,#14..#31,'''']),['"','\',#10,#13])+''''
-                else
-                  st:='s'''+stabx_quote_const(octal_quote(strpas(pchar(sym.value.valueptr)),[#0..#9,#11,#12,#14..#31,'''']))+''''
+                begin
+                  s:=strpas(pchar(sym.value.valueptr));
+                  s:=copy(s,1,sym.value.len);
+                  if target_dbg.id=dbg_stabs then
+                    st:='s'''+backspace_quote(octal_quote(s,[#0..#9,#11,#12,#14..#31,'''']),['"','\',#10,#13])+''''
+                  else
+                    st:='s'''+stabx_quote_const(octal_quote(s,[#0..#9,#11,#12,#14..#31,'''']))+'''';
+                end
               else
                 st:='<constant string too long>';
             end;