Skip to content
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

Debugging sandboxed Factorio #3

Open
annitya opened this issue Apr 15, 2023 · 11 comments
Open

Debugging sandboxed Factorio #3

annitya opened this issue Apr 15, 2023 · 11 comments

Comments

@annitya
Copy link

annitya commented Apr 15, 2023

Is it possible to use the debugger without using the commands on "emmy_core"?
It's successfully injected, but I'm unable to require the module due to the sandboxing of Factorio.

If I add _G.emmy.fixPath and sets a breakpoint, the debugger disconnects.

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

The emmylua debugger is divided into emmy_core-based debugging and emmy_hook-based attach debugging, so which one are you talking about

@annitya
Copy link
Author

annitya commented Apr 16, 2023

emmy_hook. Thanks for getting in touch so quickly :-)

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

emmylua attach debugger, donot need require any thing

@annitya
Copy link
Author

annitya commented Apr 16, 2023

Edit: console-output from emmy-hook

That's what I was hoping for. I might have an actual bug on my hands. Whenever a breakpoint is hit, the process exits abruptly. There is no error message or anything in the game/IntelliJ logs to go by.

Longer explanation:

The breakpoints weren't doing anything which is why I wanted to break declaratively.

I then found a blog-post mentioning fixPath:

image
This reminded me of xDebug/PHP in the past, so I adjusted my code accordingly:

image
The code above is transpiled, so don't worry about it too much :)

I set the breakpoint within a conditional on purpose.

If I wear the armor and then move, the breakpoint is hit and the process ends.

sidenote:

The Lua-environment of Factorio might not be the friendliest. "require" has been modified, io and couroutines don't exist and there might be multiple lua-instances spawning/dying running at any time. I'm still new to both Lua and Factorio-modding, so forgive me if I got anything wrong.

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

please update emmy_hook from https://github.com/EmmyLua/EmmyLuaDebugger/releases

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

or use my project https://github.com/CppCXY/EmmyLua-AttachDebugger

@annitya
Copy link
Author

annitya commented Apr 16, 2023

I downloaded latest release from your repository and replaced the plugin-files manually. It works as expected now. Thank you so much! :)

I do fear that downloading files manually and discovering fixPath will be a bit much for most users. Perhaps it could be released as a regular plugin alongside some documentation?

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

the reason for the manual update is that this plugin has not been updated for a long time. in the link above I maintained the latest version myself.
the plugin could not be released because it was originally part of Emmylua. but it had to be separated from emmylua because of the reported virus.

@annitya
Copy link
Author

annitya commented Apr 16, 2023

Thank you so much for your work :) Don't they accept PRs?

I have a rather unusal setup. I'm transpiling from TypeScript. Is there any way to get sourcemaps working? I tried altering fixPath so that it returned a corresponding ts-file, but breakpoints stopped working.

@CppCXY
Copy link
Member

CppCXY commented Apr 16, 2023

I am the maintainer. It's just that the author may have forgotten to give me permission to this repository, and there are no functions related to source maps.

@annitya
Copy link
Author

annitya commented Apr 16, 2023

@tangzx: Could you perhaps give the necessary permissions to @CppCXY? :)

I suspect the code handling breakpoints are a bit too strict. There are a lot of builtin support for sourcemaps in IntelliJ, would you consider making the setting of breakpoints a bit more lenient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants