-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
document and work around range retracing limitation for accessing for…
…ked contexts #90
- Loading branch information
Showing
4 changed files
with
15 additions
and
7 deletions.
There are no files selected for viewing
4 changes: 4 additions & 0 deletions
4
packages/TraceDebugger.package/TDBCursor.class/class/rangeRetracingForkAccess.st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
documentation | ||
rangeRetracingForkAccess | ||
|
||
"Currently, access from the simulated code to stored context instances from its stack might fail when the execution has been forked before. A prominent example of this limitation are non-local returns within an unwind context (#aboutToReturn:through:). See https://github.com/hpi-swa-lab/squeak-tracedebugger/issues/90." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 9 additions & 6 deletions
15
packages/TraceDebugger.package/TDBHistoryExplorer.class/instance/detailsTextForValue..st
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,13 @@ | ||
labels & details | ||
detailsTextForValue: value | ||
|
||
[value isText ifTrue: [^ self detailsTextForTextValue: value]. | ||
value isForm ifTrue: [^ self detailsTextForFormValue: value]. | ||
value isMorph ifTrue: [^ self detailsTextForMorphValue: value]. | ||
self flag: #rangeRetracingForkAccess. "We would want to use non-local returns here which would send #aboutToReturn:through: which is currently not supported during range retracing." | ||
|
||
^ self detailsTextForObjectValue: value] | ||
on: self commonErrors do: [:ex | | ||
^ self errorText: 'display error' exception: ex] | ||
^ [true | ||
caseOf: | ||
{[value isText] -> [self detailsTextForTextValue: value]. | ||
[value isForm] -> [self detailsTextForFormValue: value]. | ||
[value isMorph] -> [self detailsTextForMorphValue: value]} | ||
otherwise: [self detailsTextForObjectValue: value]] | ||
on: self commonErrors do: [:ex | | ||
self errorText: 'display error' exception: ex] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters