www.digitalmars.com         C & C++   DMDScript  

D.gnu - Exceptions don't work in FreeBSD port of gdc

reply Dmitry Marakasov <amdmi3 amdmi3.ru> writes:
Exceptions don't work in FreeBSD port of gdc, throw leads straight to abort():

% gdc --version
gdc (GCC) 4.1.3 20071105 (prerelease   (gdc 0.24, using dmd 1.020))
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

% cat test.d 
import std.stdio;

void main() {
        try  {
                throw new Exception("test");
        } catch (Exception e) {
        }
}
% gdc test.d 
% ./a.out 
[1]    98829 abort      ./a.out

I'm not very familiar with D and gdc, so I don't have an idea what may be the
cause. There's nothing related to exceptions in the port as well. So how do I
enable them?
Please feel free to ask for any additional info.
Jun 21 2008
parent reply Nicolay Korslund <korslund gmail.com> writes:
I'm having this problem with OpenMW. Dmitry and myself are currently working
together to port openmw to FreeBSD, but it's a bit fragile if exceptions don't
work.

Can anyone confirm that this does or doesn't happen on FreeBSD? Is there any
reason why gdc's exceptions shouldn't work on other unix systems? (How do they
work really?)

I just want to know if we are doing something obviously wrong, before filing a
bug report.

Nico

Dmitry Marakasov Wrote:

 % cat test.d 
 import std.stdio;
 
 void main() {
         try  {
                 throw new Exception("test");
         } catch (Exception e) {
         }
 }
 % gdc test.d 
 % ./a.out 
 [1]    98829 abort      ./a.out
Jun 25 2008
parent Witold Baryluk <baryluk smp.if.uj.edu.pl> writes:
Dnia 2008-06-25, =C5=9Bro o godzinie 11:26 -0400, Nicolay Korslund pisze:
 import std.stdio;
=20
 void main() {
         try  {
                 throw new Exception("test");
         } catch (Exception e) {
         }
 }
=EF=BB=BF$ gdc t.d=20 $ ./a.out=20 Abort trap: 6 (core dumped) $ :(
Jul 04 2008