eclipse-cdt-cloud / cdt-gdb-adapter

CDT GDB Debug Adapter
Eclipse Public License 2.0
27 stars 40 forks source link

Add special case for MIParser to parse 'objects' with values but no keys #313

Closed XingMicrochip closed 8 months ago

XingMicrochip commented 8 months ago

@jonahgraham This PR is for #311. I added a special case in MIParser to parse objects that are not formatted as name-value pairs. I have tested this change from the IDE in our application on both Windows and Linux and it solved the application hanging issue and the script was attached to the breakpoint fine. I added a test case.

The old object parsing flow is not affected. This change just extends it.

jonahgraham commented 8 months ago

This looks promising. It looks like one of the tests failed, I expect it was an intermittent failure so I restarted the tests. Once tests pass I will have a closer look.

jonahgraham commented 8 months ago

sorry, I didn't get to looking at this today, I'll try tomorrow.

XingMicrochip commented 8 months ago

I pushed a fix that treats name-value pairs and just values differently that works on the counterexample in your comment above. If there is a " that follows the opening {, then it is just a list of values. Otherwise the object has name-value pairs. This is what my second commit was based on, and I think this implication is correct.

jonahgraham commented 8 months ago

Thank you @XingMicrochip - I will publish this and an updated cdt-gdb-vscode soon.

jonahgraham commented 8 months ago

I have tagged cdt-gdb-vscode and tested the vsix with this:

script:

b main
commands
print "Arrived at main"
end

and this in the launch.json:

      "initCommands": ["source ${workspaceFolder}/script"],

I can see when running that I get the following in the Debug Console:

$1 = "Arrived at main"
XingMicrochip commented 8 months ago

I think v0.0.106 might be broken. I just downloaded it from https://open-vsx.org/api/eclipse-cdt/cdt-gdb-vscode/0.0.106/file/eclipse-cdt.cdt-gdb-vscode-0.0.106.vsix and integrated it into our IDE. We couldn't launch the debugger with the same launch configuration. The last version we used was v0.0.103. Could there be something introduced between v0.0.103 and v0.0.106 that broke the adapter? I also noticed the adapter source files are now bundled. It looks like this now, while it used to be that all the source files are seperated: image

jonahgraham commented 8 months ago

Yes, the packaging of cdt-gdb-vscode has changed since 0.0.103 - see https://github.com/eclipse-cdt-cloud/cdt-gdb-vscode/pull/96

Can you open a bug in https://github.com/eclipse-cdt-cloud/cdt-gdb-vscode/ with what you see. You are not the only one to experience problems with this change, but I cannot reproduce the current problem (I fixed an earlier one)

It looks like this now, while it used to be that all the source files are seperated:

BTW That change is the main part of https://github.com/eclipse-cdt-cloud/cdt-gdb-vscode/pull/96

XingMicrochip commented 8 months ago

I created an issue here: https://github.com/eclipse-cdt-cloud/cdt-gdb-vscode/issues/111.