hm-riscv / vscode-riscv-venus

VS Code extension with the Venus RISC-V simulator
https://marketplace.visualstudio.com/items?itemName=hm.riscv-venus
MIT License
63 stars 15 forks source link

Hangup on debug starting in 1.6.1 #83

Closed coderPaddyS closed 2 years ago

coderPaddyS commented 2 years ago

Since upgrading to 1.6.1, I cannot compile, simulate and debug any riscv programm at all. Regardless of complexity, even a single instruction programm does not start. The Launch-Progress seams to be stuck after printing "Starting programm \n" to the terminal and before finishing the launching of the debugger, since VSCode seems to wait endlessly. However, a forcefull downgrade to 1.6.0 seems to be working currently on my machine.

I love your extension, it is the only option to simulate RISC-V programms in VS Code. If it wouldn't be for your extension, I'd have to use an outdated simulator, written in Swing, which performs poorly and deviates from the standard at some points. So thx! If I could be of any help, please feel free to tell me so.

wallento commented 2 years ago

I can confirm the bug as I encountered it too earlier this week. Unfortunately, I couldn't find time to fix it so far. It seems related to Linux, can you confirm that you are also using Linux? On other platforms it seems to work. So it must be any change between 1.6.0 and 1.6.1, maybe some low level library..

wallento commented 2 years ago

I can also confirm that downgrading solves the issue at least for now.

coderPaddyS commented 2 years ago

Indeed, I am using Linux. Arch Linux to be exact. But I am also using Windows in parallel and I have encountered the same problem there. Just confirmed same behaviour there as well.

wallento commented 2 years ago

Oh, really, thats interesting. My colleagues and @m1n1 have it running under Windows, I need to fire up a VM.. @m1n1 any idea which of the changes could influence that?

wallento commented 2 years ago

I see "potential" here:

JoJoDeveloping commented 2 years ago

Can you post your launch.json?

If you are launching without a launch.json, please create one, and see whether this fixes things.

wallento commented 2 years ago

It doesn't change it for me unfortunately

JoJoDeveloping commented 2 years ago

For me, it does once you add

            "ledMatrixSize": {
                "x": 10,
                "y": 10
            },

to the config. Is that part of yours?

wallento commented 2 years ago

Yes, that works! Didn't I see you saying that anyhwere before? :)

JoJoDeveloping commented 2 years ago

Yes, that works! Didn't I see you saying that anyhwere before? :)

Indeed:

https://github.com/hm-riscv/vscode-riscv-venus/blob/master/src/venusDebug.ts#L250

I think changing this to

if (args.ledMatrixSize && args.ledMatrixSize.x && args.ledMatrixSize.y) {

solves this. Quick fix is to add a run configuration where these are defined.

But it might just be that this only affected me. My current local changes work under Linux.

wallento commented 2 years ago

Yes, right! Here is the change that broke it: https://github.com/hm-riscv/vscode-riscv-venus/commit/a491a91f466d41a50aebbadccf58bf623ced72b3#diff-b3de1a151f9ddaa9681e2194c6f811ab5643292f9029c7c202a1666c710c5f06L247 It turns out that args.ledMatrixSize is undefined and undefined != null is false while undefined !== null is true. I will push a hotfix including a release, but I think this part generally needs a bit of attention, as line 260 is probably the more generic way of doing it.

wallento commented 2 years ago

Version 1.6.2 is on the marketplace now. Can you confirm that it works for you too, @coderPaddyS ?

wallento commented 2 years ago

(rarely that I build a successful release before the first coffee of the day..)

coderPaddyS commented 2 years ago

Well, note that day in your calendar, it is working for me :) Both on Windows as well as on Linux. Without defining the ledMatrix ^^

Thank you very much, have a wonderful sip of coffee! You earned it ^^