mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-07 12:50:31 +02:00
* single threadvar debugging support
This commit is contained in:
parent
907b785f0d
commit
ecaa77a503
@ -1809,15 +1809,22 @@ implementation
|
|||||||
function tvarsym.stabstring : pchar;
|
function tvarsym.stabstring : pchar;
|
||||||
var
|
var
|
||||||
st : string;
|
st : string;
|
||||||
|
threadvaroffset : string;
|
||||||
begin
|
begin
|
||||||
st:=tstoreddef(vartype.def).numberstring;
|
st:=tstoreddef(vartype.def).numberstring;
|
||||||
|
if (vo_is_thread_var in varoptions) then
|
||||||
|
threadvaroffset:='+'+tostr(pointer_size)
|
||||||
|
else
|
||||||
|
threadvaroffset:='';
|
||||||
|
|
||||||
if (owner.symtabletype = objectsymtable) and
|
if (owner.symtabletype = objectsymtable) and
|
||||||
(sp_static in symoptions) then
|
(sp_static in symoptions) then
|
||||||
begin
|
begin
|
||||||
if (cs_gdb_gsym in aktglobalswitches) then st := 'G'+st else st := 'S'+st;
|
if (cs_gdb_gsym in aktglobalswitches) then st := 'G'+st else st := 'S'+st;
|
||||||
stabstring := strpnew('"'+owner.name^+'__'+name+':'+st+
|
stabstring := strpnew('"'+owner.name^+'__'+name+':'+st+
|
||||||
'",'+
|
'",'+
|
||||||
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)+','+mangledname);
|
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)
|
||||||
|
+','+mangledname+threadvaroffset);
|
||||||
end
|
end
|
||||||
else if (owner.symtabletype = globalsymtable) then
|
else if (owner.symtabletype = globalsymtable) then
|
||||||
begin
|
begin
|
||||||
@ -1827,12 +1834,14 @@ implementation
|
|||||||
but these names don't exist in pascal !}
|
but these names don't exist in pascal !}
|
||||||
if (cs_gdb_gsym in aktglobalswitches) then st := 'G'+st else st := 'S'+st;
|
if (cs_gdb_gsym in aktglobalswitches) then st := 'G'+st else st := 'S'+st;
|
||||||
stabstring := strpnew('"'+name+':'+st+'",'+
|
stabstring := strpnew('"'+name+':'+st+'",'+
|
||||||
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)+','+mangledname);
|
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)+
|
||||||
|
','+mangledname+threadvaroffset);
|
||||||
end
|
end
|
||||||
else if owner.symtabletype = staticsymtable then
|
else if owner.symtabletype = staticsymtable then
|
||||||
begin
|
begin
|
||||||
stabstring := strpnew('"'+name+':S'+st+'",'+
|
stabstring := strpnew('"'+name+':S'+st+'",'+
|
||||||
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)+','+mangledname);
|
tostr(N_LCSYM)+',0,'+tostr(fileinfo.line)+
|
||||||
|
','+mangledname+threadvaroffset);
|
||||||
end
|
end
|
||||||
else if (owner.symtabletype in [parasymtable,inlineparasymtable]) then
|
else if (owner.symtabletype in [parasymtable,inlineparasymtable]) then
|
||||||
begin
|
begin
|
||||||
@ -2656,7 +2665,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.110 2003-06-13 21:19:31 peter
|
Revision 1.111 2003-07-04 22:41:41 pierre
|
||||||
|
* single threadvar debugging support
|
||||||
|
|
||||||
|
Revision 1.110 2003/06/13 21:19:31 peter
|
||||||
* current_procdef removed, use current_procinfo.procdef instead
|
* current_procdef removed, use current_procinfo.procdef instead
|
||||||
|
|
||||||
Revision 1.109 2003/06/07 20:26:32 peter
|
Revision 1.109 2003/06/07 20:26:32 peter
|
||||||
|
Loading…
Reference in New Issue
Block a user