[Ecls-list] Threads on MacOSX (and others)
bernard tatin
bernard.tatin at tele2.fr
Fri Jan 28 15:02:00 UTC 2005
Juan Jose Garcia Ripoll wrote:
> bernard tatin wrote:
>
>> I hope you receive my messages, I am sure I had messages, but I cannot
>> get them.
>
>
> There are some problems with the mailing list program. I experience huge
> delays in the receipt of mails -- up to half a day sometimes.
Ecl list was not alone until this morning. Now, ecl list is alone.
>
>> More debug after a [...]
>> 2 --> basename = @si::string-concatenate(2, prefix,
>> @string-upcase(1,basename));
>> 3 -->
>> At 3, we have :
>> basename = @si::string-concatenate(2, prefix,
>> @string-upcase(1,basename));
>> basename->string.t : 80
>> basename->string.m : 0 [... apparently corrupt structure ...]
>
>
> It might be that GCC optimizes away the value of basename. What about
> rewriting the previous line as
> basename = cl_print(1, at si::string-concatenate(2, prefix,
> @string-upcase(1,basename)));
> This should give you the value that the runtime is working with,
> independent of the optimization level.
>
I cannot work today on ecl. I can work a little this week-end and more
on monday.
Anyway, yersterday's conclusion is that Apple's gdb is strange. First,
it does not like #line directives, gdb is lost, source lines shown are
not in accordance with assembly instructions. And there is worst.
I will try to explain in my poor english what I think.
On the line 2--> baseame = @si::string-concatenate(...)
with ddd (a layer upon gdb, but I think it's a good one) I can see the
content of basename. It's a pointer, I can ask to see the pointed
object. It is done just before the instruction @si::concatenate.
On line 3 --> @si::concatenate is done and basename points on a new
object. I am afraid that gdb (or ddd) is lost. At that time, when I ask
ddd to show me the contents of the pointed objects, it show some junk,
but I think it's not the true contents. gdb (or ddd) is lost because the
address of the pointed object have changed - bad synchronisation or
somthing like that).
I already use ddd on Linux or FreeBSD. I never saw that. On XCode list
(XCode is the free development tool made by Apple) a lot of people
complains about gdb. I have to read carefully what they say and find
other ways to debug (cl_print, printf and so on).
You say that gcc optimizes away the value of basename. I have done the
compilation with -O0 -g3 as gcc flags. I hoped that -O0 does not make
optimisation.
> Juanjo
Bernard.
More information about the ecl-devel
mailing list