Hello,

Long time between messages from me, sorry about that.

I have the autobuilder up and running on Ubuntu now and have been
able to compile the project I was working on. So far so good.

However, testing my program, it crashes when running some stuff in
glib. There were 2 quite different crashes I found, which both seem
to be the exact same problem:


Fatal signal received: Segmentation fault

Stack backtrace:

Running thread 0x3cf52c
  (  7d7f38) pc:   34fbf4 lr:   350200 sp:   7d7f3c  __write_backtrace()
  (  7d7fa0) pc:   34fdac lr:   33afe4 sp:   7d7fa4  __unixlib_raise_signal()
  (  7d7fb0) pc:   33aeec lr:   2e83a0 sp:   7d6e60  __h_cback()

  Register dump at 007d7fb4:

    a1:        0 a2:        1 a3:        0 a4:       55
    v1:   3cdf47 v2:  1c1aa94 v3:        0 v4:        0
    v5: e59ff400 v6:   7d6e78 sl:   7d6210 fp:   7d6e98
    ip:   ba4dbf sp:   7d6e60 lr:   2e83a0 pc: 80345fa4
    Mode USR, flags set: Nzcvif

  00345f90 : ..àc : 63e00000 : MVNVS   R0,#0
  00345f94 : .ð á : e1a0f00e : MOV     PC,R14
  00345f98 : __os : 736f5f5f : Undefined instruction
  00345f9c : _vdu : 7564765f : STRVCB  R7,[R4,#-1631]!
  00345fa0 : .... : 00000000 : ANDEQ   R0,R0,R0
  00345fa4 : ...ÿ : ff00000c : SWINV   OS_GBPB            ; *** Use of NV
  00345fa8 : ...ï : ef020000 : SWI     XOS_WriteC
  00345fac : .. s : 73a00000 : MOVVC   R0,#0
  00345fb0 : ..àc : 63e00000 : MVNVS   R0,#0

  (  7d6e98) pc:   2e8310 lr:   2bcca8 sp:   7d6e9c  IA__g_get_charset()
  (  7d6ec0) pc:   2bcbd0 lr:   2bf020 sp:   7d6ed4  IA__g_print()
  (  7d6ef4) pc:   2befe8 lr:   2c1118 sp:   7d6ef8  ^print_help()
  (  7d6f94) pc:   2c0e6c lr:     ab40 sp:   7d6f98  
IA__g_option_context_parse()
  (  7d6fd8) pc:     aae0 lr:     ad9c sp:   7d6fdc  ^vala_compiler_main()
  (  7d6ff4) pc:     ad7c lr:   34570c sp:   7d6ff8  main()

The line where it seems to fail is this one:

  raw = _g_locale_charset_raw ();

(line 531 in glib/gutf8.c)

I put a debug message just before, which gets printed out. After
that, I put a debug message just displaying the result of this
function, but this then gives this this segfault. So it does not
appear to have anything to do with the value of the 'raw'-variable.
I also put a debug message as the very first statement in this
procedure, but that is apparantly never executed (which the
stacktrace seems to confirm).

After that I made my own little program that uses glib and runs
g_get_charset (I think the _g_locale_charset_raw is an internal
function which is not available outside of glib).

This is that program:

#include <glib.h>
#include <stdio.h>

int main()
{
  const char *charset;
  gboolean blah = g_get_charset (&charset);
  printf("Charset: %s\n", charset);
}

However, this seems to work just fine?!

Can anyone shine some light on this?

Cheers,
Jan-Jaap

_______________________________________________
GCCSDK mailing list [email protected]
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Reply via email to