stacktrace: fix missing caller frames and remove carets from vd_cli() traces #2651
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
4df7308 fixes a bug in #2586. The caller of
stacktrace()
was being removed in too many cases, like ingetCell()
. Now the only caller of stacktrace that is removed isexceptionCaught()
.Test case:
vd
=
1+[]
z^E
and note how there is no line that ends within getCell
until after applying 4df7308.aa4285b cleans up the carets in tracebacks from
vd_cli
(seen in Python 3.11 and up). Like in the traceback when an HTTP connection closes:You can test this with
netcat
:nc -l -p 2000 -w 1& vd http://localhost:2000/
I tested aa4285b in the most recent Python major versions from 3.8-3.12.
Note that the new exception formatting will not happen for events like
KeyboardInterrupt
. So the carets will be seen if you dovd /dev/zero
then hit^C
.