[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