[fpc-devel] Debug compiler

Sven Barth pascaldragon at googlemail.com
Fri Oct 30 19:38:34 CET 2015


On 30.10.2015 16:01, Ondrej Pokorny wrote:
> just out of curiosity, I wanted to play with the debugger and try to add
> http://bugs.freepascal.org/view.php?id=28820

Seems like my little hint helped :P

> 2.) I set run parameters to:
> -MObjFPC -Scghi -O1 -g -gl -l -vewnhibq
> -FiP:\programs\lazarus\_zk\CT_ClassConstruct\lib\x86-win64
> -FuP:\programs\lazarus\_zk\CT_ClassConstruct\
> -FUP:\programs\lazarus\_zk\CT_ClassConstruct\lib\x86-win64\ project1.lpr
> (basically the same Lazarus uses to build project1.lpr)
>
> 3.) I set working directory to:
> p:\programs\lazarus\_zk\CT_ClassConstruct\
> (directory with project1.lpr)

I usually use -n to have the compiler not use any config file at all so 
I can be sure that it only uses the parameters I supply on the command 
line (this way of course I need to supply the RTL path and the paths for 
all other units I need as well). Also I have my test programs in a 
subdirectory of the SVN checkout (in my case that directory is called 
"fpctests") and the output directory next to it ("testoutput") with the 
working directory set to the checkout directory. This way I usually have 
run parameters like this:

-n -Furtl\units\i386-win32 -viwn -FEtestoutput .\fpctests\txyz.pp

This way I can also quite quickly check a test if I might have broken 
it, for example:

-n -Furtl\units\i386-win32 -viwn -FEtestoutput .\tests\test\thlp1.pp

Speaking of which: I suggest you to run the compiler test suite first 
without any modifications to the compiler and safe at least the faillist 
file. This way you can diff with testruns with your modifications to see 
if you broke something.

Like this (I assume current dir is the checkout directory):

make clean all FPMAKEOPT="-T 4"
cd tests
make clean full TEST_FPC=E:\path\to\checkout\compiler\ppc386.exe 
CHUNKSIZE=50 -j 4
mkdir output\unmodified
cp output\i386-win32\faillist output\unmodified
cd ..
{ do changes to compiler }
make clean all FPMAKEOPT="-T 4"
cd tests
make clean full TEST_FPC=E:\path\to\checkout\compiler\ppc386.exe 
CHUNKSIZE=50 -j 4
diff -aur output\unmodified\faillist output\i386-win32\faillist

(Alternatively to diff you can use a tool like WinMerge)

Regards,
Sven



More information about the fpc-devel mailing list