Comments (7)
Hello,
I am running this extension native on Linux and stumbled on the same problem.
On my machine the bundled fs-uae cannot open libSDL2_ttf-2.0.so
shared object.
There are at least two workarounds:
-
Use
LD_PRELOAD=/path/to/libSDL2_ttf-2.0.so ./fs-uae
to launch the emulator (you might need to add more dependencies here) -
Install missing library packages from your package manager (in my case libsdl2-ttf-2.0-0 on Debian / Ubuntu)
Note that this might happen with other shared objects too. Try running the bundled fs-uae manually to see what is happening.
Alternatively you can print bundled fs-uae shared object dependencies with ldd to see if some shared object dependencies are missing.
In addition to this problem I had to manually add execute flag to all bundled binaries.
from vscode-amiga-debug.
seems the emulator crashes before the debugger can connect. Can you try the regular windows version?
from vscode-amiga-debug.
Can confirm the native windows version does work. WSL should be capable of calling to windows if invoking a windows executable, but I did try this on the winuae-gdb.exe
and while WinUAE does launch, it locks up immediately. Running under windows works well though so not too concerned about making WSL behave.
from vscode-amiga-debug.
I suspect the problem is if you're using WSL that you're using the Linux version that comes with FS-UAE, probably that's not compatible with WSL. Any specific reason you're not using the native Windows version?
from vscode-amiga-debug.
@grahambates do we need to bundle that TTF library?
from vscode-amiga-debug.
We do currently bundle libSDL2_ttf-2.0.so.0
in the linux dir. I'll look into why this isn't being loaded in this case.
from vscode-amiga-debug.
Hi,
I'm not an expert on these things, but my understanding is that Linux doesn't look for dynamic libraries in the current path by default.
So my suggestion is to set environment variable LD_LIBRARY_PATH
to .
or '$ORIGIN'
(or whatever is the correct library path) before launching the emulator.
This can be done via launch script or perhaps the vscode extension has already some other way to do it.
Shell script for example:
#!/bin/sh
# Set dynamic loader search path to current binary path and pass command line arguments ("$@")
LD_LIBRARY_PATH='$ORIGIN' /path/to/fs-uae "$@"
Alternatively, if you compile the emulator yourself, you can tell the linker to add a custom search path using the -rpath
flag.
More details about the dynamic loader here: https://man7.org/linux/man-pages/man8/ld.so.8.html
Edit:
I had time to investigate bit further and looks like there was already this kind of thing in place:
vscode-amiga-debug/src/amigaDebug.ts
Line 556 in ae6e6c7
Changing LD_LIBRARY_PATH: "."
to LD_LIBRARY_PATH: "$ORIGIN"
seems to make it work properly.
Looks like "."
alone points to project workspace directory.
Quote from manpage:
$ORIGIN (or equivalently ${ORIGIN})
This expands to the directory containing the program or
shared object. Thus, an application located in
somedir/app could be compiled with
gcc -Wl,-rpath,'$ORIGIN/../lib'
so that it finds an associated shared object in
somedir/lib no matter where somedir is located in the
directory hierarchy. This facilitates the creation of
"turn-key" applications that do not need to be installed
into special directories, but can instead be unpacked into
any directory and still find their own shared objects.
from vscode-amiga-debug.
Related Issues (20)
- Resource bitmap colors are inverted. HOT 1
- Could the debug text font be changed? HOT 3
- Linker not always capable of resolving xref in vasm results HOT 3
- 'index' is not a constant expression when changing main.c to main.cpp HOT 1
- macOS/FS-UAE: Error: the description can't be converted into a problem matcher HOT 4
- MacOS : fatal error: cannot execute 'cc1': execvp: No such file or directory HOT 8
- settings.json wrong? HOT 3
- gcc8_a_support missing on new project HOT 3
- fs-uae hang on macos sonoma HOT 46
- Display variable contents when exploring call stack HOT 1
- Linking against FFP ROM symbols HOT 1
- MacOS CI fails HOT 1
- auto update shrinklerstats, disassembly views if underlying file is changed
- Trouble using 1.7.6 on MacOS Sonoma HOT 3
- amigaprofile palette R&B swapped? HOT 1
- Split compiler into separate project HOT 5
- WinUae slow startup
- Clear Cache before VBR call in default demo. HOT 1
- Setting new values in the debugger
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vscode-amiga-debug.