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