Subject: C++ Exceptions.
From: [email-masked] (Fabricio Chalub)

10 Nov 1996 15:08:05 -0800
Sender: [email-masked]
Approved: [email-masked]
Distribution: cygnus
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 2.01 (Win95; I)
Original-To: [email-masked]
Original-Sender: [email-masked]

Hi, maybe you've discussed this before, if you have, please let me know 
where I can find more information about this...

I know that beta-16's C++ support is broken, first you can't find the 
C++ include files, but this can be solved by setting the 
CPLUS_INCLUDE_PATH env. variable.  Second, stdc++ is broken, but why?  
Well, my guess is that the exception-handling mechanism is broken, 
here's the gdb output of a classic Hello, world (with cout<<) program:

GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for 
details.
GDB 4.16.1 (i386-cygwin32), Copyright 1996 Free Software Foundation, 
Inc.
(gdb) file tst.exe
Reading symbols from tst.exe...done.
(gdb) break main
Breakpoint 1 at 0x401038: file tst.cpp, line 4.
(gdb) run
Starting program: /e/Projects/C/tst.exe 
bff30000:/WINDOWS/SYSTEM/GDI32.DLL
bff60000:/WINDOWS/SYSTEM/USER32.DLL
7e2e0000:/WINDOWS/SYSTEM/WSOCK32.DLL
bfef0000:/WINDOWS/SYSTEM/ADVAPI32.DLL
bff70000:/WINDOWS/SYSTEM/KERNEL32.DLL
10000000:/WINDOWS/SYSTEM/CYGWIN.DLL
bff00000:/WINDOWS/SYSTEM/COMCTL32.DLL
7fe00000:/WINDOWS/SYSTEM/SHELL32.DLL
61000000:/WINDOWS/SYSTEM/URL.DLL

Program received signal SIGSEGV, Segmentation fault.
0x100325f8 in __register_exceptions (table=0x4770d8)
Current language:  auto; currently c
(gdb) bt
#0  0x100325f8 in __register_exceptions (table=0x4770d8)
#1  0x410ca5 in global constructors keyed to exception::exception ()
    at /sethra/death/noer/beta16/src/libstdc++/exceptioni.cc:101
#2  0x10001f32 in __do_global_ctors ()
    at /sethra/death/noer/beta16/src/winsup/dcrt0.cc:563
#3  0x10001f66 in __main ()
    at /sethra/death/noer/beta16/src/winsup/dcrt0.cc:574
#4  0x401038 in main () at tst.cpp:3
#5  0x10001ebb in dll_crt0_1 (uptr=0x413004)
    at /sethra/death/noer/beta16/src/winsup/dcrt0.cc:520
#6  0x10001ecf in dll_crt0 (uptr=0x413004)
    at /sethra/death/noer/beta16/src/winsup/dcrt0.cc:532
#7  0x41287c in cygwin_crt0 ()
    at /sethra/death/noer/beta16/src/winsup/libccrt0.cc:89
(gdb) quit

if you can't guess what a class hello world is, here's the source:)

#include <iostream.h>

main () { cout << "Hello, World!"; }

Am I right?

[]s fabricio chalub
-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".