Page 1 of 2

trouble with Linux version (1.14.156)

Posted: Fri Nov 20, 2009 4:43 am
by lloyd
Today I decided to finally update the Ubuntu/Debian Linux D2X-XL packages with the latest version (1.14.156 at the time of this writing). I have successfully compiled many previous d2x-xl versions from 1.14.66 up to 1.14.117, but even though I got 1.14.156 to compile, it does not run.

After 1.14.117, new file-checking stuff was added with graphical popup boxes (using Motif libraries) to tell the user that such-and-such files are missing. To get D2X-XL to compile, I had to install the following new packages:

libmotif3
libmotif-dev
libcurl3
libcurl4-openssl.dev
s11proto-pint-dev

(I think these new dependencies should be mentioned in the installation/compile instructions.)

After I finally got the program to compile with no errors, I installed the 1.14.144 data, and tried running the game. When I start it, if it has to give me any warnings about missing files (I don't have the Vertigo files, for example), the popup box does not have an 'x' to close it, and the "Close" button on the popup doesn't work. If I kill it, d2x-xl is left hanging.

I tried running with the '-check_setup 0' command line switch. That takes away the missing files warning. I still get a popup box telling me I have no CD-ROM drive. THAT warning box does have an 'x' to close it, and the close button works. But after I close it, D2X-XL is hanging without rendering the menu options.

I never did figure out how to get D2X-XL to print debug messages to a file, so I have no more information than this. Any help would be appreciated.

Posted: Fri Nov 20, 2009 2:55 pm
by Sykes
Without dumping the information to a file, you can still read what the debugger says and let people know on here. Include where it crashed at (filename, line number), like "ogl_bitmap.cpp Line 117" for example. You can also check here:

https://sourceforge.net/tracker/?func=d ... tid=797586

to see what other things that might be helpful to include. You can even just take a snapshot of your debugger when it crashed, and that should give people a good amount of information. But of course, I'm used to VC++. It could be a completely different scenario for Linux users.

Posted: Fri Nov 20, 2009 3:16 pm
by lloyd
Yeah, well, actually I did not compile in debugger support.

Before I dig into this deeper, a question for the developer: Do you compile and test every version on Linux? In other words, are you sure this version is working OK on Linux?

Posted: Fri Nov 20, 2009 5:13 pm
by lloyd
Since everything compiles with no errors, and I am using the recommended version of support libraries (SDL, etc.), and the correct data, I think this is probably a bug affecting only the Linux version. I'll go ahead and make a bug report.

Posted: Mon Nov 23, 2009 10:16 pm
by TEMHOTA
There two bugs:
1. Crash inside XtUnrealizeWidget() when error dialog closed.
2. Loop in signal handler (it's wrong handle SIGSEGV).

Posted: Mon Nov 30, 2009 3:42 pm
by rapsure
I've noticed the same bug. However I haven't submitted it to the bugzilla on sourceforge.

Posted: Mon Nov 30, 2009 4:14 pm
by Sykes
If you guys notice a bug and don't report it on Sourceforge, I assure you Diedel will take no action to fix it. Complaining about unreported bugs on the forums is not something I'd recommend doing. ;)

Posted: Mon Nov 30, 2009 4:25 pm
by lloyd
I posted a bug report a while back on the trouble in Debian Linux. I think it is an Open Motif problem (with the graphical warning and error popup boxes) that appears to affect only Debian - and Ubuntu I assume. Until there is a bugfix that I hear about, the Debian/Ubuntu D2X-XL version in my repository will have to stay at 1.14.117.

Posted: Mon Nov 30, 2009 4:50 pm
by Sykes
As long as it's in the bug tracker, Diedel will look into it. :)

Posted: Thu Dec 03, 2009 3:29 am
by rapsure
What is the bug number associated with this issue? I looked and didn't find an open or closed bug regarding this crash.

Posted: Thu Dec 03, 2009 3:19 pm
by lloyd
That's strange, I was sure I had reported the bug, but now I can't find it. Guess I will have to report it again.

The bug I thought I reported did not produce a crash, but rather a 'hang' with an empty main d2x-xl menu, in Debian Linux..

Posted: Thu Dec 03, 2009 4:50 pm
by karx11erx
Did you happen to report it as a patch rather than a bug?

Posted: Thu Dec 03, 2009 5:26 pm
by lloyd
No, I checked and it is not there as a patch, either. I guess I'll have to resubmit...

Posted: Mon Dec 07, 2009 10:36 pm
by TEMHOTA
lloyd wrote:The bug I thought I reported did not produce a crash, but rather a 'hang' with an empty main d2x-xl menu, in Debian Linux..

Hang - due to looping inside signal hadler (after SIGSEGV catch). Minimum - need this patch:

Code: Select all

--- d2x/main/descent.cpp~       2009-10-13 21:12:07.000000000 +0400
+++ d2x/main/descent.cpp        2009-12-08 01:26:04.000000000 +0300
@@ -146,9 +146,10 @@
        PrintLog ("Illegal instruction\n");
 else if (nSignal == SIGINT)
        PrintLog ("Ctrl+C signal\n");
-else if (nSignal == SIGSEGV)
+else if (nSignal == SIGSEGV) {
        PrintLog ("Memory access violation\n");
-else if (nSignal == SIGTERM)
+       _exit(1);
+} else if (nSignal == SIGTERM)
        PrintLog ("Termination request\n");
 else
        PrintLog ("Unknown signal\n");
[/code]

Posted: Mon Dec 07, 2009 10:52 pm
by Sykes
Whoa, someone knows their stuff..