[Gambas-user] Another crash.

Benoît Minisini gambas at ...1...
Sat Jan 8 23:41:19 CET 2011


> This is from GambasTester, when these two lines are uncommented:
>  pp2 = Pointer@(pp)
>  Debug Pointer@(pp2)
> 
> 
> Starting program: /usr/local/bin/gbx3 -p
> [Thread debugging using libthread_db enabled]
> mTest.DoTests.307: This Gambas version is somewhat tested for string
> errors. mTest.DoTests.1126:
> Program received signal SIGSEGV, Segmentation fault.
> 0x0000000000409140 in VALUE_read (value=0x678ba0, addr=0xc, type=11)
>     at gbx_value.c:1071
> 1071        value->_pointer.value = *((void **)addr);
> (gdb) bt
> #0  0x0000000000409140 in VALUE_read (value=0x678ba0, addr=0xc, type=11)
>     at gbx_value.c:1071
> #1  0x000000000042b0bd in SUBR_ptr (code=40715) at gbx_subr_extern.c:247
> #2  0x00000000004513f7 in EXEC_loop () at gbx_exec_loop.c:480
> #3  0x000000000040f69e in EXEC_function_loop () at gbx_exec.c:861
> #4  0x000000000040f601 in EXEC_function_real () at gbx_exec.c:848
> #5  0x0000000000411f63 in EXEC_public_desc (class=0x6cba98,
> object=0x7bef98,
> 
>     desc=0x7bd638, nparam=0) at gbx_exec.c:1497
> #6  0x0000000000431212 in raise_event (observer=0x7bef98, object=0x7bef98,
>     func_id=149, nparam=0) at gbx_api.c:476
> #7  0x0000000000431636 in GB_Raise (object=0x7bef98, event_id=20, nparam=0)
>     at gbx_api.c:580
> #8  0x00007ffff6b42138 in gMainWindow::emitOpen (this=0x7bf060)
>     at gmainwindow.cpp:445
> #9  0x00007ffff6b43128 in gMainWindow::setVisible (this=0x7bf060, vl=12)
>     at gmainwindow.cpp:470
> #10 0x0000000000411120 in EXEC_native () at gbx_exec.c:1243
> #11 0x0000000000411ee6 in EXEC_public_desc (class=0x6cba98, object=0x0,
>     desc=0x7ffff6d9cdb0, nparam=0) at gbx_exec.c:1487
> #12 0x000000000043d428 in main (argc=1, argv=0x7fffffffe338) at gbx.c:362
> (gdb) f 1
> #1  0x000000000042b0bd in SUBR_ptr (code=40715) at gbx_subr_extern.c:247
> 247        VALUE_read(RETURN, ptr, code & 0xF);
> 
> 
> 
> Gambas 3 rev 3447 @ Ubuntu 10.10 64bit.
> 
> Jussi
> P.S. Core file was too big to attach.

But I have the project and a way to reproduce it, so it is better than just 
having a backtrace or a valgrind log!

Another point. The following code is useless:

#If SYSTEM = "Linux"
Private sSystem As String = "Linux"
#Else If SYSTEM = "FreeBSD"
Private sSystem As String = "FreeBSD"
#Else If SYSTEM = "OpenBSD"
Private sSystem As String = "OpenBSD"
#Else If SYSTEM = "NetBSD"
Private sSystem As String = "NetBSD"
#Else If SYSTEM = "Solaris"
Private sSystem As String = "Solaris"
#Else
Private sSystem As String = "Unknown"
#Endif

#If ARCHITECTURE = "x86"
Private sArchitecture As String = "x86"
#Else If ARCHITECTURE = "x86_64"
Private sArchitecture As String = "x86_64"
#Else If ARCHITECTURE = "ARM"
Private sArchitecture As String = "ARM"
#Else If ARCHITECTURE = "PPC"
Private sArchitecture As String = "PPC"
#Else
Private sArchitecture As String = "Unknown"
#Endif

Just use System.Family and System.Architecture !

Regards,

-- 
Benoît Minisini




More information about the User mailing list