[Lazarus] [Lazarusdev] CodeTools FPC not defined problem

Joost van der Sluis joost at cnoc.nl
Wed Jun 14 00:16:26 CEST 2017


Some more info on my own mail, which I mistakenly only send to Ondrej:

Op 13-06-17 om 23:50 schreef Joost van der Sluis:
> Op 13-06-17 om 23:22 schreef Ondrej Pokorny:
>> Joost reported in the Lazarus mailing list today that CodeTools 
>> probably miss the FPC define due to an unknown reason and therefore 
>> the out parameter isn't parsed properly. I wasn't able to help him. 
>> Could you take a look?
> 
> I can give some more information. The content of hints, warnings and 
> errors are not shown in the messages-screen. I thought it was unrelated. 
> But I think it's related.
> 
> My guess is that the defines are parsed from the compiler-output (-va) 
> But that the compiler-output is not parsed right.
> 
> I'm fiddling around in etFPCMsgParser. At first sight I see that the 
> parser looks for 'Warn:' while my compiler outputs: 'Warning:'. But 
> that's not the main issue.
> 
> I did not debug the code, only looked briefly. But what I do see is that 
> for some strange reason the compiler-output adds some extra characters. 
> This is an example-output from trunk:
> 
> Free Pascal Compiler version 3.1.1 [2017/06/13] for x86_64
> Copyright (c) 1993-2017 by Florian Klaempfl and others
> Target OS: Linux for x86-64^@
> Compiling unit1.pas^@
> unit1.pas(8,22) Fatal:^@ Can't find unit FileUtil used by Unit1^@
> Fatal:^@ Compilation aborted^@
> 
> Maybe that the ^@ (tab?) character is messing things up? I don't see 
> this character in fpc 3.0.0's output.
> 
> I'll dig further tomorrow.

The ^@-character actually is #0. The parsing is done using pchar's, 
which are cut-off at the #0 sign.

I think I'll have to find out why the compiler outputs #0 characters in 
the middle of strings....

Regards,

Joost.


More information about the Lazarus mailing list