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

D-Bus not built with -rdynamic so unable to print a backtrace #20

Closed
AJenbo opened this issue Feb 3, 2019 · 10 comments
Closed

D-Bus not built with -rdynamic so unable to print a backtrace #20

AJenbo opened this issue Feb 3, 2019 · 10 comments

Comments

@AJenbo
Copy link
Member

AJenbo commented Feb 3, 2019

If you get the following error it is likely a bug in your distribution's 32bit SDL package.

dbus[8661]: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../../dbus/dbus-message.c line 1362.
This is normally a bug in some application using the D-Bus library.

  D-Bus not built with -rdynamic so unable to print a backtrace
Afbrudt (SIGABRT) (smed kerne)

The issue has been reported against Ubuntu here:
https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1775067

A workaround is to run the game like this:

DBUS_FATAL_WARNINGS=0 ./devilutionx
@llcool
Copy link

llcool commented Mar 8, 2019

Great work.

I installed the libs
$ sudo apt install libsdl2-2.0:i386 libsdl2-ttf-2.0:i386 libsdl2-mixer-2.0:i386

Installed steam
$ sudo apt install steam

And downloaded your prebuild file:
devilutionx

I also bought a copy of GOG Diablo 1 Which I had to install on Windows, then copied the diablo directory onto my Linux machine.

Copy devilutionx file to the diablo directory and run.
$ LD_LIBRARY_PATH=~/.steam/bin32/ ./devilutionx 👍

@AJenbo
Copy link
Member Author

AJenbo commented Mar 8, 2019

Thanks.

Good point about having to install the GoG version in Windows. I will ask my friend if he can document how he extracted the files from the GoG setup file.

Stick around, the next release should be fairly exciting 😈

@mnhauke
Copy link
Contributor

mnhauke commented Mar 8, 2019

Extract DIABDAT.MPQ from the GoG installer

  1. First download the offlineinstaller of the GoG.

  2. Install the latest git snapshot of innoextract

git clone https://github.com/dscharrer/innoextract.git
cd innoextract/cmake/
cmake ..
make
sudo make install
  1. Check innoextract version (must be > 1.7)
$ innoextract --version
innoextract 1.8-dev + 38ae68f
Extracts installers created by Inno Setup 1.2.10 to 6.0.0
  1. Get some info about the installer
$ innoextract --info 'setup_diablo_1.09_v2_(27882).exe'
Inspecting "Diablo" - setup data version 5.6.2 (unicode)

Languages:
 - en-US

GOG.com game ID is 1412601690

Setup is not passworded!
  1. Extract DIABDAT.MPQ from the installer
$ innoextract --include DIABDAT.MPQ --lowercase 'setup_diablo_1.09_v2_(27882).exe'
Extracting "Diablo" - setup data version 5.6.2 (unicode)
 - "diabdat.mpq" [en-US]
Done.
  1. have fun :-)

@DCsunset
Copy link

Hi,

After installing steam, there is only libSDL2-2.0.so.0 in ~/.steam/bin32.
libSDL2_ttf-2.0.so.0 and libSDL2_mixer-2.0.so.0 are still not found.

Is there any idea how to get the missing libraries?
Thanks.

@AJenbo
Copy link
Member Author

AJenbo commented Mar 19, 2019

@DCsunset did you try installing them threw normal means?
sudo apt install libsdl2-ttf-2.0:i386 libsdl2-mixer-2.0:i386

@DCsunset
Copy link

DCsunset commented Mar 19, 2019

Oh, I got it.
libsdl2-ttf-2.0:i386 and libsdl2-mixer-2.0:i386 are not buggy, and installing through apt is OK.

After installing them, the game runs normally, thanks!

@AJenbo
Copy link
Member Author

AJenbo commented Mar 19, 2019

@DCsunset thanks for confirming the solution.

@ctrl-meta-f
Copy link

This is a known sdl2 bug in Ubuntu 18.04

https://bugs.launchpad.net/ubuntu/+source/libsdl2/+bug/1775067

Another workaround is to run the game like this:

DBUS_FATAL_WARNINGS=0 ./devilutionx

@AJenbo
Copy link
Member Author

AJenbo commented Mar 27, 2019

Thanks that's a simpler solution.

@AJenbo
Copy link
Member Author

AJenbo commented Sep 15, 2019

Closing this as we now support native 64bit builds in stead.

@AJenbo AJenbo closed this as completed Sep 15, 2019
glebm added a commit to glebm/devilutionX that referenced this issue Mar 23, 2021
Single-player difficulty selection was implemented in a very hacky way.

Documents what's going on there and fixes a memory leak.

Memory leaks that this fixes looked like this:

```
Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f435b789f17 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.6+0xb1f17)
    #1 0x5567766c62b8 in dvl::selgame_GameSelection_Select(int) ../SourceX/DiabloUI/selgame.cpp:163
    #2 0x5567766d8ee8 in dvl::selhero_Load_Select(int) ../SourceX/DiabloUI/selhero.cpp:464
    #3 0x5567766d6ed1 in dvl::selhero_List_Select(int) ../SourceX/DiabloUI/selhero.cpp:325
    #4 0x556776692683 in dvl::UiFocusNavigationSelect() ../SourceX/DiabloUI/diabloui.cpp:396
    #5 0x55677669158e in HandleMenuAction ../SourceX/DiabloUI/diabloui.cpp:223
    #6 0x5567766917b9 in dvl::UiFocusNavigation(SDL_Event*) ../SourceX/DiabloUI/diabloui.cpp:277
    #7 0x556776695dff in dvl::UiPollAndRender() ../SourceX/DiabloUI/diabloui.cpp:626
    #8 0x5567766d94ef in UiSelHeroDialog ../SourceX/DiabloUI/selhero.cpp:512
    diasurgical#9 0x5567766d997f in dvl::UiSelHeroSingDialog(int (*)(int (*)(dvl::_uiheroinfo*)), int (*)(dvl::_uiheroinfo*), int (*)(dvl::_uiheroinfo*), void (*)(unsigned int, dvl::_uidefaultstats*), int*, char (*) [16], int*) ../SourceX/DiabloUI/selhero.cpp:547
    diasurgical#10 0x556776a44f45 in mainmenu_select_hero_dialog ../Source/mainmenu.cpp:98
    diasurgical#11 0x5567765f9f15 in SNetInitializeProvider ../SourceX/storm/storm_net.cpp:102
    diasurgical#12 0x556776c996b9 in multi_init_single ../Source/multi.cpp:826
    diasurgical#13 0x556776c98b1e in NetInit ../Source/multi.cpp:770
    diasurgical#14 0x5567767d0c0b in StartGame ../Source/diablo.cpp:375
    diasurgical#15 0x556776a4493d in mainmenu_init_menu ../Source/mainmenu.cpp:45
    diasurgical#16 0x556776a44c05 in mainmenu_single_player ../Source/mainmenu.cpp:61
    diasurgical#17 0x556776a454a9 in mainmenu_loop ../Source/mainmenu.cpp:152
    diasurgical#18 0x5567767d2892 in DiabloMain ../Source/diablo.cpp:602
    diasurgical#19 0x5567766e3c69 in main ../SourceX/main.cpp:34
    diasurgical#20 0x7f435a69ecb1 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28cb1)
```
AJenbo pushed a commit that referenced this issue Mar 23, 2021
Single-player difficulty selection was implemented in a very hacky way.

Documents what's going on there and fixes a memory leak.

Memory leaks that this fixes looked like this:

```
Direct leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f435b789f17 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.6+0xb1f17)
    #1 0x5567766c62b8 in dvl::selgame_GameSelection_Select(int) ../SourceX/DiabloUI/selgame.cpp:163
    #2 0x5567766d8ee8 in dvl::selhero_Load_Select(int) ../SourceX/DiabloUI/selhero.cpp:464
    #3 0x5567766d6ed1 in dvl::selhero_List_Select(int) ../SourceX/DiabloUI/selhero.cpp:325
    #4 0x556776692683 in dvl::UiFocusNavigationSelect() ../SourceX/DiabloUI/diabloui.cpp:396
    #5 0x55677669158e in HandleMenuAction ../SourceX/DiabloUI/diabloui.cpp:223
    #6 0x5567766917b9 in dvl::UiFocusNavigation(SDL_Event*) ../SourceX/DiabloUI/diabloui.cpp:277
    #7 0x556776695dff in dvl::UiPollAndRender() ../SourceX/DiabloUI/diabloui.cpp:626
    #8 0x5567766d94ef in UiSelHeroDialog ../SourceX/DiabloUI/selhero.cpp:512
    #9 0x5567766d997f in dvl::UiSelHeroSingDialog(int (*)(int (*)(dvl::_uiheroinfo*)), int (*)(dvl::_uiheroinfo*), int (*)(dvl::_uiheroinfo*), void (*)(unsigned int, dvl::_uidefaultstats*), int*, char (*) [16], int*) ../SourceX/DiabloUI/selhero.cpp:547
    #10 0x556776a44f45 in mainmenu_select_hero_dialog ../Source/mainmenu.cpp:98
    #11 0x5567765f9f15 in SNetInitializeProvider ../SourceX/storm/storm_net.cpp:102
    #12 0x556776c996b9 in multi_init_single ../Source/multi.cpp:826
    #13 0x556776c98b1e in NetInit ../Source/multi.cpp:770
    #14 0x5567767d0c0b in StartGame ../Source/diablo.cpp:375
    #15 0x556776a4493d in mainmenu_init_menu ../Source/mainmenu.cpp:45
    #16 0x556776a44c05 in mainmenu_single_player ../Source/mainmenu.cpp:61
    #17 0x556776a454a9 in mainmenu_loop ../Source/mainmenu.cpp:152
    #18 0x5567767d2892 in DiabloMain ../Source/diablo.cpp:602
    #19 0x5567766e3c69 in main ../SourceX/main.cpp:34
    #20 0x7f435a69ecb1 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x28cb1)
```
kphoenix137 added a commit to kphoenix137/devilutionX that referenced this issue Mar 27, 2024
kphoenix137 added a commit to kphoenix137/devilutionX that referenced this issue Mar 31, 2024
kphoenix137 added a commit to kphoenix137/devilutionX that referenced this issue Apr 6, 2024
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

5 participants