[fpc-devel]Issues with GDB on Mac OS X with mixed case file names

Dr. Rolf Jansen InstantWare at t-online.de
Thu Aug 26 16:43:04 CEST 2004


Am 26.08.2004 um 15:45 schrieb Florian Klaempfl:

> Dr. Rolf Jansen wrote:
>
>> ...<SNIP>
>> The lowercase filename comes into the .stabs of the TestProgram due 
>> to the routine TGNUAssembler.WriteFileLineInfo of aggas.pas at line 
>> 237 of the fpc compiler. If I change that line from:
>>    AsmWriteLn(#9'.stabs "'+lower(FixFileName(infile.name^))+'",'+
>> to
>>    AsmWriteLn(#9'.stabs "'+FixFileName(infile.name^)+'",'+
>> and compile fpc first and then again my TestProgram, then GDB happily 
>> accepts the mixed case file name for seting breakpoints, and all the 
>> features of Xcode can be used to source level debug fpc programs.
>> So, PLEASE, PLEASE, PLEASE, can someone change line 237 in aggas.pas 
>> as indicated. It would be OK, to make the change conditional for the 
>> target Darwin.
>> Just for my curiosity, how does this work with case sensitive 
>> filesystems. My understanding of what´s going on tells me that 
>> setting breakpoints in mixed case files e.g. in Linux does´t work 
>> even when using lower case letters for the breakpoint, as long as 
>> line 237 of aggas.pas is not changed.
>> Best regards
>
> We simply decided for fpc that on case sensitive systems, all source 
> names should be lower case else you get case sensitiveness into the 
> pascal language when working with units.
>
> MyUnit.pas:
> unit MyUnit;
> ...
> end.
>
> test.pas:
> uses
>   MyUnit; <--- case sensitive identifier in pascal; myunit wouldn't be 
> found and being case sensitive here would cause a lot of trouble.
>

That is fine. If all file names are lower case anyway, then line 237 of 
aggas.pas can safely be changed from:

       AsmWriteLn(#9'.stabs "'+lower(FixFileName(infile.name^))+

to:

       AsmWriteLn(#9'.stabs "'+FixFileName(infile.name^)+


since, the lower function has nothing to do there.





More information about the fpc-devel mailing list