[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows

From: Tacvek
Subject: Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows
Date: Wed, 28 Jun 2006 18:45:19 -0400

----- Original Message ----- From: "Ronald Lamprecht" <address@hidden>
To: "Tacvek" <address@hidden>
Cc: "Daniel Heck" <address@hidden>; "enigma-devel" <address@hidden>
Sent: Wednesday, June 28, 2006 4:23 PM
Subject: Re: [Enigma-devel] Lua 5.1 "luaL_error" problems on Windows


Tacvek wrote:
And finally a slightly suspicious one:

printf-args.c: In function `printf_fetchargs':
printf-args.c:83: warning: `wint_t' is promoted to `int' when passed through `...' printf-args.c:83: warning: (so you should pass `int' not `wint_t' to `va_arg')
printf-args.c:83: note: if this code is reached, the program will abort

I've always had this appear, although Daniel did not seem to be able to reproduce it.
I had assumed I have some bad header somewhere.

If this error is also showing up for other people then I would be suspicious. Aborting does indeed appear to be what is happening, and I think the error printing code
does use *printf.

This warning occurs in GNU gettext compilation. I saw it, too. But the crash messages are not translated. So it is very unlikely to be the reason.

The gettext version included is only compiled for Windows - otherwise we use the OS-installed gettext version.

Indeed. Well actually, the included gettext would also be used if enigma was compiled
an a very obscure platform that lacks its own gettext.

Anyway, it is more than just gettext, it looks like a whole libintl. It includes implementations of the *printf functions, and i suspect it is overiding the ones included in the C library, or compiler (the C standard allows those functions to be implemented in either location).

I'm still not clrear what exactly a wint_t is, but if it is being used, it could explain the error.

It would also explain the consistancy. The quickest way to tell is to use --disable-nls.

I tested that. Besides a few small tweaks that are needed to make it compile using with that, it worked.
The resulting exe also crashed.

So my next guess is an uncaught C++ exception.

Eliminating the reason for this warning would be anyway a step forward.

@Tacvek: The gcc 3.4.5 version you tested did use which exception method - DW2 or sjlj exceptions (see http://www.mingw.org/MinGWiki/index.php/build%20a%20Win32%20x-compiler%20for%20Linux)?

I was using whatever is is used by the Debian 3.4.5 build.

Apparently that is compiled using "--enable-sjlj-exceptions".

I am still wondering why the crashes occur very stable with the calls listed in this thread independent of Lua, minggw and Enigma version, but other luaL_error calls work totally stable independet of the versions at the same time. What is the difference between these luaL_error calls?

There does not appear to be any difference.

Wait a second: The test on line 17 (enigma.GetAttrib(sender, "notexisting"), the one not inside the function) does not always crash. Sometimes I manage to get an error message instead.

Also, if with an "--disable-optimize" build the version of enigma.GetAttrib(sender, "notexisting") found inside the function causes the program to crash. Dr watson reports a " 0xC0000096" error, which is apparently "Privileged instruction error".

Loading it into the Visual studio debugger tells me:
"Unhandled exception at 0x008e19c0 in enigma.exe: 0xC0000096: Privileged instruction."

The instruction appears to be a "hlt" instruction.
It is followed by two
"db ffh" instructions which are apparently illeagal instructions.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]