vshaxe / hashlink-debugger

Visual Studio Code Debugger for Haxe/HashLink applications
https://hashlink.haxe.org/
MIT License
57 stars 23 forks source link

Debugger does not launch #53

Closed ghost closed 5 years ago

ghost commented 5 years ago

I am using Ubuntu 18.10, hl 1.9.0, haxe 4.0.0-rc.2+77068e1, VS Code 1.33.1. When trying to debug Heaps samples for self-teaching reasons I get following error from VS Code:

Could not start hl process, executable was not found in PATH. Restart VSCode or computer.

The build itself works fine. hl is in directory /usr/local/bin and causes no problems using from the command line. VS Code has this path also in the process.env.PATH variable. No idea why hl cannot be launched. Tried also with haxe 4.0.0.-rc1 because it has been mentioned in the documentation that hashlink is compatible with that version, but no difference.

ncannasse commented 5 years ago

Could you check the following ? Edit the adapter.js, lookup for js_node_ChildProcess.spawn("hl",hlArgs,{ env : { }, cwd : args.cwd}); and remove the env : { }, part.

ghost commented 5 years ago

Hi Nicolas,

that helped a bit. An empty applilcation window is now popping up. But I'm getting a lot of messages in the debug console:

1.1> src/HLAdapter.hx:556: TODO : handle x64 calling conventions
1.1> src/HLAdapter.hx:576: TODO : handle x64 calling conventions
15.8> src/HLAdapter.hx:556: TODO : handle x64 calling conventions
15.8> src/HLAdapter.hx:576: TODO : handle x64 calling conventions
18.2> src/HLAdapter.hx:556: TODO : handle x64 calling conventions
18.2> src/HLAdapter.hx:576: TODO : handle x64 calling conventions
19.1> src/HLAdapter.hx:556: TODO : handle x64 calling conventions
19.1> src/HLAdapter.hx:576: TODO : handle x64 calling conventions
20> src/HLAdapter.hx:556: TODO : handle x64 calling conventions
20> src/HLAdapter.hx:576: TODO : handle x64 calling conventions

The debugger seems to stop at fill(...) call in BitmapData.hx:

public function clear( color : Int ) {
    #if (flash||openfl||nme)
    bmp.fillRect(bmp.rect, color);
    #else
    fill(0, 0, width, height, color);
    #end
}

Thereafter I cannot step or continue the application. Application window remains empty.

ghost commented 5 years ago

This only happens when a breakpoint is set. Without breakpoints the application starts just fine.

ncannasse commented 5 years ago

Uhm, this means it cannot read some variables on stack, and yes there's indeed something not finalized here on 64 bits, but the exception is caught (hence the console trace) and should not prevent the debugger from working unless it causes another error somewhere. I'll try to force it to happen on 32 bits too to see.

ncannasse commented 5 years ago

The trace is unrelated as forcing the same error on 32 bit does not affect variable display. I'll try to test debugging HL64, I haven't tried for some time now.