-
Notifications
You must be signed in to change notification settings - Fork 30.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[debug] Source.adapterData is not preserved across debug sessions #34511
Comments
@vadimcn my assumption is that here we do not find a In order to reproduce this issue on my machine better, can you clarify your steps? Can you reproduce this only if debugging is stopped and started again - thus you mention across debug sessions? |
Yes, that's what seems to be happening.
So I'm allowing to set breakpoints in generated sources (disassembly). In order to reconstitute breakpoints across debug sessions, I need to remember how source lines mapped to addresses. I was trying to stash this info into 'adapterData', but it gets preserved only during debug session. If I stop and restart debugging, it is lost.
No, insiders build does not seem to be better in this respect. |
@vadimcn thanks for reporting this. There was an issue that we were not preserving |
@isidorn: This still isn't working in 9/25 insiders build. |
@vadimcn there are no new insiders builds due to failed signing for a couple of days. Please download insiders manualyy from here and try it out. Not sure what is your platform, here's bunch |
@isidorn: I did install an upgrade yesterday and Help/About said "Date 2017-09-25...". Installed another update today... looks like something got broken, because Help/About:
|
@vadimcn thanks for letting me know, reopening to investigate |
@vadimcn pushed a fix, please try it out in tomorrows insiders (not yet out). What os are you using, so I know what link to give you |
I'm on a 64 bit Ubuntu |
@isidorn: Nope, |
@vadimcn Yes, in the Insiders a "Source.path" can be a URI. |
@vadimcn please provide some details about where the adapterData is lost. |
It seems that
|
@vadimcn thanks for providing more details. If you simply tie the adapter data to the source it will not be persisted due to the different lifecycle of a breakpoint and a source on the implementation side. I understand this might be a bit complex, so as an alterantive you could also encode this data in the uri. |
@isidorn: Are the sources stored with breakpoints completely separate from sources VSCode stores for files? Will it try to re-associate them? If so, which attribute will be used to group them together? |
@vadimcn it will try to reasociate them, we always use We do not store the whole source object with the breakpoint, nor do we store the source object anywhere since their lifecycle is the same as the lifecycle of a debug session, so they always come new when a debug session starts. We only store the adapterData with the breakopint which is a bit ugly imho. |
The
StackFrame.source.adapterData
attribute that adapter sends to the client, does not round-trip toSetBreakpointsArguments.source.adapterData
across debug sessions. However, protocol documentation states that it should be preserved (or at least that's how I read it).The text was updated successfully, but these errors were encountered: