Giter Site home page Giter Site logo

hxcpp-debugger's Introduction

Haxe Support for Visual Studio Code

This is an extension for Visual Studio Code that adds support for the Haxe language, leveraging the Haxe Language Server. It works best with the latest Haxe 4 release, but supports any Haxe version starting from 3.4.0.

demo

Some framework-specific extensions exist to extend the functionality further:

Features

This is just a brief overview of the supported features. For more details, check out our extensive documentation.

Building

For instructions on building/installing from source, please see the dedicated wiki page.

hxcpp-debugger's People

Contributors

elitemastereric avatar gama11 avatar joshtynjala avatar nulld avatar profelis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hxcpp-debugger's Issues

Thread still showing as running after termination

When running the following code (thanks for the code example @gepatto) and pressing Space to open a file dialog, a second thread appears in the callstack view:

package;

import lime.ui.FileDialogType;
import lime.ui.FileDialog;
import openfl.events.Event;
import openfl.net.URLRequest;
import openfl.display.Loader;
import openfl.display.Sprite;
import openfl.ui.Keyboard;
import openfl.events.KeyboardEvent;

class Main extends Sprite {
	var dialogOpen:Bool = false;
	var l:Loader;

	public function new() {
		super();
		stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keydown);
	}

	function loadComplete(e:Event) {}

	function stage_keydown(e:KeyboardEvent) {
		switch (e.keyCode) {
			case Keyboard.SPACE:
				selectImage();
			case Keyboard.DELETE:
				if (l != null) {
					l.unload();
					removeChild(l);
					l = null;
				}
		}
	};

	function selectImage() {
		#if !js
		if (dialogOpen)
			return; // prevent multiple dialogs
		if (l == null) {
			l = new Loader();
			l.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
			addChild(l);
		} else {
			l.unload();
		}
		var dOpen = new FileDialog();
		dOpen.onSelect.add(function(path:String) {
			l.load(new URLRequest(path));
			dialogOpen = false;
		});
		dialogOpen = true;
		dOpen.browse(FileDialogType.OPEN);
		#end
	}
}

When the file dialog is closed, the thread should terminate, but the UI doesn't seem to update. I added some traces and found the following order of events:

threadStart {
	threadId : 0
}
threadStart {
	threadId : 2
}
threadExit {
	threadId : -1
}

So it looks like we don't get a valid thread ID on exit. Possibly a bug in hcxpp (@nulld)?

Type check not working in conditional breakpoints

I wanted to use a conditional breakpoint that should trigger when a general function (like a superclass constructor or a function that checks all onscreen objects for mouseover) is dealing with a object of a certain type.

For my breakpoint expression, I used:

Std.is (this, ObjectType)

where all instances of this are childclasses of FlxSprite.
However, that expression never triggers. It even does not when I set ObjectType to FlxSprite.

The breakpoint does trigger for simple numerical conditions, like:

this.x < 25

Please help publish vshaxe.hxcpp-debugger to OpenVSX

Hello! 👋

It would be awesome to have vshaxe.hxcpp-debugger published on https://open-vsx.org, to make it available for non-Microsoft tools like VSCodium, Gitpod, Theia, etc.

  • Probably the best way to achieve this would be for a vshaxe.hxcpp-debugger maintainer to just run npx ovsx publish when they also publish to Microsoft VSCode marketplace (no dependencies needed, just an OVSX_PAT token)

  • If that's not an option, we'd be happy to publish it ourselves. We can do that via our auto-publish CI (with some limitations) by re-publishing an official .vsix release, or by attempting to re-package the extension ourselves


We've even already tried publishing ourselves. Since we couldn't find an official .vsix release (outside of Microsoft's marketplace, which forbids access to non-Microsoft tools), we've tried repackaging it like so:

git clone --recurse-submodules https://github.com/vshaxe/hxcpp-debugger
cd hxcpp-debugger
git checkout 1.2.4
npm install
npm install haxe
npx haxelib install vscode-debugadapter
npx haxelib install vscode
npx ovsx publish

However, this currently fails with:

Executing prepublish script 'npm run vscode:prepublish'...

> [email protected] vscode:prepublish /tmp/repository
> haxe build.hxml

src/Adapter.hx:4: characters 7-27 : Type not found : protocol.debug.Types

Could you please help get vshaxe.hxcpp-debugger published to OpenVSX? By order of preference:

  1. Could a maintainer please just run npx ovsx publish (with an OVSX_PAT token)?

  2. Or, could you please provide an official .vsix file (outside Microsoft's proprietary marketplace)?

  3. Or, could you please help resolve the above error to help us re-package vshaxe.hxcpp-debugger ourselves?

Many thanks! 🙏

Crash with lime.app Future

Seems as if the debugger doesn't like the threading capabilities that come with the usage of the Future class in lime.app package.
It throws the error:

Critical Error: Allocating from a GC-free thread.

and the debug server instantly crashes.
This can be reproduced by inserting the following in any hello world (I used HaxeFlixel, but a lime program should suffice)

import lime.app.Future;

var future = new Future<Int>(testfunction, true);

function testfunction()
{
	trace("Hello");
}

Support setting member variables

I added basic setVariable support in 903e142, but it only works on locals, not member vars. There also seems to be an issue with values not updating in the UI right away, even though we seem to be returning the new value correctly.

Compilation errors with -D hscriptPos

If hscriptPos is defined, compilation of hcxpp-debug-server fails with various errors:

./hxcpp/debug/jsonrpc/eval/Expr.hx:84: characters 10-17 : Type not found : Printer
./hxcpp/debug/jsonrpc/eval/Interp.hx:244: characters 9-18 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:250: characters 9-19 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:238: characters 10-30 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:238: characters 10-30 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:252: characters 9-22 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:256: characters 9-19 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:258: characters 9-22 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:265: characters 9-21 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:579: characters 10-27 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:579: characters 10-27 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:267: characters 9-27 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:270: characters 12-26 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:270: characters 12-26 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:272: characters 9-29 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:132: characters 9-19 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:146: characters 9-21 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:587: characters 10-27 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:587: characters 10-27 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:155: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:177: characters 18-55 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:177: characters 18-55 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:155: lines 155-175 : Incompatible pattern
./hxcpp/debug/jsonrpc/eval/Interp.hx:130: lines 130-179 : Missing return: Dynamic
./hxcpp/debug/jsonrpc/eval/Interp.hx:285: characters 13-27 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:285: characters 13-27 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:287: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:295: characters 30-47 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:295: characters 30-47 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:300: characters 9-27 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:302: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:305: characters 9-27 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:308: characters 9-23 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:540: characters 10-29 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:540: characters 10-29 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:311: characters 9-15 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:313: characters 9-18 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:315: characters 9-19 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:318: characters 9-42 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:383: characters 9-24 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:429: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:437: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:442: characters 9-18 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:444: characters 9-30 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:467: characters 9-20 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:472: characters 9-32 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:474: characters 9-31 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:491: characters 9-23 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:493: characters 9-25 : hxcpp.debug.jsonrpc.eval.ExprDef should be hxcpp.debug.jsonrpc.eval.Expr
./hxcpp/debug/jsonrpc/eval/Interp.hx:300: lines 300-301 : Incompatible pattern
./hxcpp/debug/jsonrpc/eval/Interp.hx:90: characters 11-26 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:90: characters 11-26 : For function argument 'e'
./hxcpp/debug/jsonrpc/eval/Interp.hx:125: characters 18-32 : hxcpp.debug.jsonrpc.eval.ErrorDef should be hxcpp.debug.jsonrpc.eval.Error
./hxcpp/debug/jsonrpc/eval/Interp.hx:125: characters 18-32 : For function argument 'e'

it's hxcpp-debugger & not hxcpp-debug-server

Your plugin's "homepage" @ https://marketplace.visualstudio.com/items?itemName=vshaxe.hxcpp-debugger says to put -lib hxcpp-debug-server into build.hxml which will make vscode tell the user to install hxcpp-debug-server by running haxelib install hxcpp-debug-server which results in the error Error: No such Project : hxcpp-debug-server.

I believe that it should read -lib hxcpp-debugger (I'm a noob though, just have been trying to get into Haxe for the last few days - so I might be wrong)

debug will auto exit when debug snowkit's linc_enet

debug will auto exit when debug snowkit's linc_enet lib

Debug server connected!
c:\Users\Administrator.vscode\extensions\vshaxe.hxcpp-debugger-1.2.4\hxcpp-debug-server./hxcpp/debug/jsonrpc/Server.hx:592: Connected to vsc debugger server at 127.0.0.1:6972
Socket error: Error: read ECONNRESET

Make debug builds usable without debugging

Right now, a debug build repeatedly tries to connect to the server when compiled with the hxcpp-debug-server lib and doesn't start until it does. This makes it unusable for anything but debugging, which can be a bit annoying.

One thing we could do is launch the executable with a HXCPP_DEBUGGER environment variable defined, and Server would only be instantiated if that env variable is present. However, that might cause issues when trying to support attach requests (#1).

@nulld Thoughts?

Crash in var printing after breakpoint before super

To reproduce, create an empty OpenFL project with this as Main:

package;

import openfl.display.Sprite;

class Main extends Sprite
{
	public function new()
	{
		trace("test");
		super();
	}
}

Then set a breakpoint at the trace. Taking any action after the breakpoint is hit (continue, step over) results in a crash.

When attaching a native C++ debugger, you can see that it crashes while printing numChildren.

@nulld Any ideas? I thought that -D HXCPP_CHECK_POINTER should help, but it doesn't seem to.

Is it possible to support "console" attribute on launch.json?

Since the vscode default debug console didn't support for input stream, as a beginner writing some standard input/output program would be impossible to debug when Sys.stdin().readLine() being used , given that the program is waiting some input.

Windows 10: Failed to connect to vsc debugger server at 127.0.0.1:6972

Hello,

I apologize in advance for this very uninformative error report. I've been working for a day or two now trying to find an example of the issue that elucidates some aspect of its cause, but to no avail.

Here is essentially my workflow and what I am experiencing:

  1. Install Flixel 4.5.0, along with OpenFL and all other dependencies at their latest version. Also install this debugger, following all relevant steps within VSCode (F1 --> HXCPP Debugger: Setup).
  2. In PowerShell, run the command flixel tpl -n "Empty". Open that project in VSCode.
  3. In project.xml, add <haxelib name="hxcpp-debug-server" />
  4. Set the build and debug tasks to Windows (cpp) default.
  5. Ctrl-Shift-B to build (command: lime test windows -debug --connect 6000)

Everything builds fine, but once the game opens, the following message appears in the integrated terminal:

C:/Users/[ME]/.vscode-insiders/extensions/hxcpp-debugger/hxcpp-debug-server/./hxcpp/debug/jsonrpc/Server.hx:64: Debug
Server Started:
C:/Users/[ME]/.vscode-insiders/extensions/hxcpp-debugger/hxcpp-debug-server/./hxcpp/debug/jsonrpc/Server.hx:419: Failed to connect to vsc debugger server at 127.0.0.1:6972

Accordingly, no breakpoints are hit, no matter where I place them. Without the debugger by my side to help me explore this plugin's code, I am unable to do any further analysis.

Does anyone here have any thoughts? Is there a better medium through which I can look for support (rather than GH issues)?

hxcpp-debug-server incorrectly sends initialized event before initialize request has ended

See Initialized event in Debug Adapter Protocol specification.

Relevant quote from spec:

A debug adapter is expected to send this event when it is ready to accept configuration requests (but not before the ‘initialize’ request has finished).

As I understand it, this means that the "initialized" event should not be sent until after the response to the "initialize" request has been sent first.

I am currently trying to integrate this debug adapter with Moonshine IDE. I have already successfully integrated debug adapters for AIR and Flash Player, Chrome, and Firefox. Here is the sequence of messages, in order, that I'm logging from the protocol.

  1. Initialize request from client (Moonshine IDE):
{"command":"initialize","type":"request","seq":1,"arguments":{"locale":"en-us","adapterID":"hxcpp","supportsMemoryReferences":false,"clientID":"moonshine","pathFormat":"path","supportsRunInTerminalRequest":false,"supportsVariableType":false,"supportsVariablePaging":false,"clientName":"Moonshine IDE","linesStartAt1":true,"columnsStartAt1":true}}
  1. Initialized event from hxcpp-debug-server:
{"event":"initialized","type":"event","seq":1}
  1. Response to initialize request from hxcpp-debug-server:
{"type":"response","body":{"supportsConditionalBreakpoints":true,"supportsValueFormattingOptions":false,"supportsSetVariable":true,"supportsCompletionsRequest":true},"command":"initialize","request_seq":1,"seq":2,"success":true}

Since the debug adapter currently works in VSCode, I guess that means that VScode is a bit more lenient than the spec. I will probably try to make Moonshine IDE allow the same behavior as VSCode. However, you may still want to adjust the debug adapter to match the spec, for maximum compatibility in the future.

Release hxcpp-debug-server as separate repository / library

Hi, just wondering why hxcpp-debug-server is a directory in this repo instead of a separate one. I think it would make sense to create a separate one for the library, and link it here via git submodule? This would also make it easier to integrate into projects with build tools that don't rely on haxelib (Kha in my case).

Breakpoints not getting hit

(Note: this might just be an issue with my setup.)

vshaxe-hxcpp-debugger version: 1.1.0

I have attempted to use the hxcpp-debugger extension with both Haxe 3.4.7 and Haxe 4.0.0-preview.5. In both cases, I have been able to run my compiled binary via Debug -> Start Debugging, but my breakpoints don't get hit.

My hxml file looks like this:

-cp src
-lib hxcpp

# VSCode debugger
-lib hxcpp-debug-server

-main pong.Main
-debug
-cpp bin/cpp

I wasn't sure if it was necessary to include hxcpp as well. The configurations in my launch.json contains one entry:

{
    "name": "Hxcpp",
    "type": "hxcpp",
    "request": "launch",
    "program": "${workspaceRoot}/bin/cpp/Main-debug.exe"
}

I'm using Visual Studio 2015 Community Edition.

Any idea what I might be missing?

A related question: what's the best way to see the trace output of the debug server? (E.g. the one listening on port 6972) I'm not sure which process is hosting it.

proper enum printing

At the moment all enum values represented as integers (index of enum value). It is preferable to print out values that wrapped in these enums, for example, there is enum EExitConditio.GameTriggerGot(trigger:String, ?targetVarName:String); which could be printed as a combination of name of the enum value and trigger and targetVarName values

Breakpoints within threads not working properly

Breakpoints within threads not working properly.

  • Os: linux x64 ubuntu 20
  • Haxe Version: 4.0.5

This is my code .

import sys.thread.Thread;
class Main {
	static function printMessage(message:String = "Default Message") {
		trace(message);
	}
	static function main() {
		printMessage();
	  #if (target.threaded)
		sys.thread.Thread.create(() -> {
		while (true) {
			trace("other thread");
			Sys.sleep(1);
				printMessage();
		}
		});
		Sys.sleep(300);
		#end
		
	}
}

my build-cpp.hxml

-cp src
-D analyzer-optimize
--debug
-lib hxcpp-debug-server
-main Main
--cpp bin/cpp

build cpp appliction with debug info :

 haxe build-cpp.hxml 

My vscode debugger config is :

		{
			"name": "HXCPP",
			"type": "hxcpp",
			"request": "launch",
			"program": "${workspaceFolder}/bin/cpp/Main-debug"
		}

Start the debugger . The breakpoint in another thread is not working .
screenscast_20240222_214837

Please help me thanks !

Debugger not stopping on last line of main()

I've noticed a while ago already that setting a breakpoint with a simple hello world program such as this doesn't seem to work with hxcpp-debugger:

class Main {
	static function main() {
		trace("Test"); // breakpoint
	}
}

Instead you need at least two lines, but in that case, the second breakpoint still doesn't trigger. "Step over" also doesn't work to stop on that line.

class Main {
	static function main() {
		trace("Test"); // breakpoint
		trace("Test");
	}
}

@nulld Can you reproduce that / any idea why this happens? I'm assuming it's likely hxcpp's fault, not ours?

Class instances are printed as empty strings?

With

"debug.inlineValues": true,

enabled, class instances look a bit odd - they're printed as empty strings I guess?

Compare this with the Flash debugger:

I'm not sure how useful that info really is, but it at least lets you know what the type of something is. Ideally, we would call Std.string() on instances to get their string representation?

Strings containing Unicode crash on breakpoints.

I encountered this while trying to process some data, and I've been able to reproduce a crash reliably:

Reproduction

  1. Create a simple program containing something like this:
var test = "Ω";
  1. Place a breakpoint on the above line.

  2. Start the program in debug mode. The program should pause and the variable scope should appear on the left alongside the call stack and watch list.

  3. Step forward in the program.

Expected Behavior

The user should see the variable test in the scope with the value Ω.

Actual Behavior

The debugged program immediately crashes with no error message and the VSCode debugger detaches.

Type not found : hxcpp.debug.jsonrpc.Macro

Hello there,
I'm trying to use this extension to debug Windows builds of HaxeFlixel games.

Whenever I try to install this extension to debug my applications I get this error:
Type not found : hxcpp.debug.jsonrpc.Macro
And as such, I can't even build my application now.

I'm using Haxe 4.0.0-rc.3 (although the same happened with 4.0.0-rc.2) and HaxeFlixel 4.6.2.
I also added <haxelib name="hxcpp-debug-server" /> to my Project.xml file.

Build command used: lime build windows -debug --haxelib=hxcpp-debug-server --connect 6000

I found out that the missing file Macro.hx is inside the vscode extension folder at hxcpp-debugger\hxcpp-debug-server\hxcpp\debug\jsonrpc\Macro.hx.
At the same time, my Haxe installation folder has only a .dev file at haxe\lib\hxcpp-debug-server. Is this normal?

The content of the .dev file is:

c:\Users\Agustín\.vscode\extensions\hxcpp-debugger\hxcpp-debug-server

Maybe the í in c:\Users\Agustín\ is causing trouble?

What could be wrong here?

Thanks for your time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.