View Issue Details

IDProjectCategoryView StatusLast Update
0037657LazarusDebuggerpublic2020-08-29 14:03
ReporterPascal Riekenberg Assigned ToMartin Friebe  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformi386OSWindows 10 x64 
Product Version2.1 (SVN) 
Fixed in Version2.2 
Summary0037657: FpDebug: Stack window: can't locate dotted units like generics.collections
DescriptionCall Stack window shows wrong location for generics.collections.

See 0000011 and 0000012 below.

Double click doesn't bring up source as directory is wrong. Project root is used here.
Additional Information#0 HandleErrorAddrFrame(204, Pointer($0000000100018268), Pointer($0000000007BCF510)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\system.inc:1324
0000001 HandleErrorAddrFrameInd(204, Pointer($0000000100018268), Pointer($0000000007BCF510)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\system.inc:1343
0000002 $fpc_handleerror(204) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\system.inc:1363
0000003 SysFreeMem_Fixed(pfreelists($00000000062F18B6), pmemchunk_fixed($00000000435CAA68)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:1167
0000004 finish_waitfixedlist(pfreelists($00000000062F18B6)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:1247
0000005 try_finish_waitfixedlist(pfreelists($00000000062F18B6)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:1258
0000006 SysGetMem_Fixed(544) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:971
0000007 SysGetmem(544) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:1087
0000008 SysReAllocMem(Pointer($000000003F208190), 520) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:1549
0000009 ReAllocMem(Pointer($000000003F208190), 520) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\heap.inc:352
0000010 $fpc_dynarray_setlength(Pointer($000000003F2081A0), Pointer($0000000100649FB0), 1, pdynarrayindex($0000000007BCF7F8)) at C:\Users\Public\freepascal\fpc\trunk\rtl\inc\dynarr.inc:287
0000011 PrepareAddingItem(TCustomList$1$crc76C7B425($000000003ED37710)) at C:\Users\Public\freepascal\projects\prime2\IDE\generics.collections.pas:1252
0000012 Add(TList$1$crc76C7B425($000000003ED37710), TprCblVariableToken($00000000443D8780)) at C:\Users\Public\freepascal\projects\prime2\IDE\generics.collections.pas:1465
0000013 Add(TThreadObjectList$1$crc76C7B425($000000003ED37710), TprCblVariableToken($00000000443D8780)) at C:\Users\Public\freepascal\projects\prime2\Common\prClasses.pas:285
0000014 AddVariable(TPrParser($000000003D9915B0), TprCblVariableToken($00000000443D8780)) at C:\Users\Public\freepascal\projects\prime2\Common\prParser.pas:820
0000015 HandleDataDescriptionEntry(TPrParser($000000003D9915B0), TprParsTokenList($000000003F380C90), TprDataDescriptionEntryBlock($000000003E9231F0), TprSentenceEntry($000000003F381390)) at C:\Users\Public\freepascal\projects\prime2\Common\prParser.pas:2745
0000016 Work(TprSentenceEntry($000000003F381390), TprBlock($000000003E9231F0)) at C:\Users\Public\freepascal\projects\prime2\Common\prSourceFile.pas:4259
0000017 Execute(TprParserWorker($000000000166F510)) at C:\Users\Public\freepascal\projects\prime2\Common\prSourceFile.pas:4321
0000018 ThreadProc(Pointer($000000000166F510)) at C:\Users\Public\freepascal\fpc\trunk\rtl\objpas\classes\classes.inc:205
0000019 main_wrapper(Internal error: Missing data location, Internal error: Missing data location) at C:\Users\Public\freepascal\fpc\trunk\rtl\win64\system.pp:74
0000020 kernel32:BaseThreadInitThunk+20 at :0
TagsNo tags attached.
Fixed in Revision63840
LazTarget2.2
WidgetsetWin32/Win64
Attached Files

Relationships

related to 0037658 new FPC Dwarf: Generics cause wrong unit-path in line-info-map 

Activities

Pascal Riekenberg

2020-08-28 20:20

developer   ~0125184

Anmerkung 2020-08-28 202013.png (105,431 bytes)   
Anmerkung 2020-08-28 202013.png (105,431 bytes)   

Martin Friebe

2020-08-28 22:51

manager   ~0125186

According to my understanding of the dwarf specs, FPC actually states that the file is in the location that fpdebug returns.

I do not know why (accident or some clever intend) GDB does not return the location.

The problem with always ignoring the location is, that this is also needed when distinguishing between include files (same name, different directory).

I'll have to see, if and what workaround can be applied. Probably checking if the file exists.

Martin Friebe

2020-08-28 22:57

manager   ~0125187

This is not related to the dot. The problem is code that during specialization becomes part of a different unit.

I.e.
TCustomList is part of YOUR unit.
The source of TCustomList.Add is in the FILE generics.collection.pas
But the code for TCustomList.Add is in your unit. (kinda works like an include file)

Martin Friebe

2020-08-29 14:03

manager   ~0125194

Please test and close if ok

Issue History

Date Modified Username Field Change
2020-08-28 20:19 Pascal Riekenberg New Issue
2020-08-28 20:19 Pascal Riekenberg Status new => assigned
2020-08-28 20:19 Pascal Riekenberg Assigned To => Martin Friebe
2020-08-28 20:20 Pascal Riekenberg Note Added: 0125184
2020-08-28 20:20 Pascal Riekenberg File Added: Anmerkung 2020-08-28 202013.png
2020-08-28 20:22 Pascal Riekenberg Description Updated View Revisions
2020-08-28 20:22 Pascal Riekenberg LazTarget => -
2020-08-28 20:22 Pascal Riekenberg Widgetset Win32/Win64 => Win32/Win64
2020-08-28 22:40 Martin Friebe Relationship added related to 0037658
2020-08-28 22:51 Martin Friebe Note Added: 0125186
2020-08-28 22:57 Martin Friebe Note Added: 0125187
2020-08-29 14:03 Martin Friebe Status assigned => resolved
2020-08-29 14:03 Martin Friebe Resolution open => fixed
2020-08-29 14:03 Martin Friebe Fixed in Version => 2.2
2020-08-29 14:03 Martin Friebe Fixed in Revision => 63840
2020-08-29 14:03 Martin Friebe LazTarget - => 2.2
2020-08-29 14:03 Martin Friebe Widgetset Win32/Win64 => Win32/Win64
2020-08-29 14:03 Martin Friebe Note Added: 0125194