Ludo Brands wrote:
With those three patches applied basic operation appears OK, but I might now be seeing different behavior on the three systems I'm testing.

First, on ARM Linux (Debian "Squeeze") running in the context of Qemu I am able to build a non-trivial program (several units, background thread, database access) which runs successfully. I've not yet tested debugger access etc.


Great.
Before I forget, I have created a patch for clocale which has been committed
in svn 17919. Before the patch exceptions where created in functions like
DateToStr.

Second, on SPARC Linux (Debian "Lenny") running on a Sun Ultra-1 with a minimal project (button on form -> close) I get this during "Build All":

Compiling project1.lpr
Compiling unit1.pas
unit1.pas(16,25) Hint: Parameter "Sender" not used
Assembling unit1
Assembling project1
Compiling resource /home/markMLl/lib/sparc-linux/project1.or

Program received signal SIGBUS, Bus error.

This probably indicates an alignment error.

[Switching to Thread 0xf7fa5aa0 (LWP 3925)]
0x00686ee8 in TREGEXPR__EMITNODE (OP=6 #6, this=0xf6129660) at synregexpr.pas:1507
1507         PRENextOff (regcode)^ := 0; // Next "pointer" := nil

regcode is a PCHAR, PRENextOff is ^PtrInt. So, yes, that is asking for
non-aligned access? There are several similar constructs in SynRegExpr. That
is going to be a non-trivial fix, I'm afraid.
gtk2callback.inc:2406 #16 0xf787cb40 in ?? () from /usr/lib/libglib-2.0.so.0 #17 0xf787cb40 in ?? () from /usr/lib/libglib-2.0.so.0 Backtrace stopped: previous frame identical to this frame (corrupt stack?)

I don't know what to make of the "corrupt stack" messages which resemble something from an older version which had debugging record errors. They might be a red herring since lazbuild and generated code are OK on this system.

Perhaps stackframes removed. But there you are already in glib. The lazarus
routine is triggered by a timer and, if I understand this correctly, you are
in the routine that is scanning the messages window and puts icons in front
of the messages. Here it is looking for "Unit x not used in y" messages. You
can check "Hide Messages Icons" in Tools/IDE Options/Window to get around
this one, for the time being.

Third, on ARM Linux (Debian "Lenny") running natively on an NSLU2 "Slug" I appear to get a failure building a program. This is using Lazarus built on the Qemu system (building natively takes an unacceptable length of time), I don't yet have a backtrace etc. on account of slow operation on this system (work continues).

Here's what I get running natively on ARM, with a minimal project (button on form -> close). As far as possible I've tried to do this identically on all systems, i.e. save files with default names in ~ then Build All:

Assembling unit1

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x40c50070 (LWP 2095)]
0x005b0e8c in TREGEXPR__REGNEXT (P=0x4c697f22 <Address 0x4c697f22 out of bounds>, this=0x41916ba0)
    at synregexpr.pas:2785
2785      offset := PRENextOff (p + REOpSz)^; //###0.933 inlined NEXT
(gdb) bt
#0 0x005b0e8c in TREGEXPR__REGNEXT (P=0x4c697f22 <Address 0x4c697f22 out of bounds>, this=0x41916ba0)
    at synregexpr.pas:2785
#1 0x005acfa0 in TREGEXPR__TAIL (P=0x41697f22 #11, VAL=0x41697f4c '', this=0x41916ba0) at synregexpr.pas:1471 #2 0x005adc88 in TREGEXPR__PARSEBRANCH (FLAGP=1, this=0x41916ba0) at synregexpr.pas:1832 #3 0x005ad8dc in TREGEXPR__PARSEREG (PAREN=0, FLAGP=1, this=0x41916ba0) at synregexpr.pas:1756 #4 0x005ad584 in TREGEXPR__COMPILEREGEXPR (EXP=0x41e92ac0 'Unit "[a-z_0-9]+" not used in [a-z_0-9]+',
    this=0x41916ba0) at synregexpr.pas:1669
#5  0x005acdb0 in TREGEXPR__COMPILE (this=0x41916ba0) at synregexpr.pas:1423
#6 0x005acee4 in TREGEXPR__ISPROGRAMMOK (this=0x41916ba0) at synregexpr.pas:1448 #7 0x005b308c in TREGEXPR__EXECPRIM (AOFFSET=1, this=0x41916ba0) at synregexpr.pas:3453 #8 0x005b3050 in TREGEXPR__EXECPOS (AOFFSET=1, this=0x41916ba0) at synregexpr.pas:3414
#9  0x006eab60 in SYNREMATCHES (THETEXT=0x42525288 'Assembling unit1',
REGEXPR=0xcc9ea8 'Unit "[a-z_0-9]+" not used in [a-z_0-9]+', MODIFIERSTR=0xc6b824 'I', STARTPOS=1)
    at sourceeditprocs.pas:729
#10 0x004c8720 in REMATCHES (THETEXT=0x42525288 'Assembling unit1',
REGEXPR=0xcc9ea8 'Unit "[a-z_0-9]+" not used in [a-z_0-9]+', MODIFIERSTR=0xc6b824 'I', STARTPOS=1)
    at texttools.pas:121
#11 0x00514ebc in TIDEMSGQUICKFIXITEM__ISAPPLICABLE (LINE=0x41b041e0, this=0x41533690) at idemsgintf.pas:450 #12 0x0073ef24 in TMESSAGESVIEW__UPDATEMSGICONS (this=0x41a5a780) at msgview.pp:1185 #13 0x0073e2c4 in TMESSAGESVIEW__IDLETIMER1TIMER (SENDER=0x41c87be0, this=0x41a5a780) at msgview.pp:957 #14 0x0021a944 in TCUSTOMTIMER__DOONTIMER (this=0x41c87be0) at customtimer.pas:181 #15 0x0021a884 in TCUSTOMTIMER__TIMER (this=0x41c87be0) at customtimer.pas:156
#16 0x002cb2ac in GTKTIMERCB (DATA=0x4187bfb0) at gtk2callback.inc:2406
#17 0x405e4c04 in ?? () from /usr/lib/libglib-2.0.so.0

There might be others related to UI events, e.g. I think I saw one earlier when I switched (KDE) desktops during a build. However at present I'm trying to be consistent.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to