utils
Directory actions
More options
Directory actions
More options
utils
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This directory contains some utilities that are used during the
development of the Free Pascal Compiler.
msg2inc : Convert a compiler message file (errorX.msg) to .inc files to
include it as the default language in the compiler. It can
also convert the .msg to .tex for inclusion the documentation
nasmconv : Convert a Nasm insns.dat to i386tab.inc so it can be used with
the compiler
makecfg : This script will make the samplecfg for linux installations
msgdif : analyzes the differences between two msg files
msgdif errore.msg errord.msg
will print out new error msg, removed old ones
and will create a new file new.msg that will
contain the new error messages (supposing TeX comment is after
the message line itself)
removed messages are prepended by "%%% "
(they can be useful in case on error enum renaming !)
ppuutils : read and dump *.ppu files generated by the compiler (directory,
utility is called ppudump)
gppc386 : run ppc386 (or any other compiler, by adding 'g' letter to compiler
name) through GNU debugger GDB.
This utility tries to run automatically and close if exitcode is
zero, but it uses a GDB script for that purpose, which
sets breakpoints on particular functions of the compiler for
this purpose. The name of these functions differs depending on
chosen debug format, which can lead to failure of loading of this
script.
vppcx64 : Similar to gppc386 but used to run the compiler through
valgrind utility. This is only useful for compilers compiled
using the '-gv' option, which ensures that the C-library
is used.
Some time-critical functions are known to generate some valgrind
specific errors, which can be discarded using specific Makefile
parameters.
VALGRIND_FPC="--error-exitcode=138 --undef-value-errors=no \
--errors-for-leak-kinds=none --error-limit=no --gen-suppressions=yes \
--suppressions=`pwd`/fpc-suppressions.txt"
Example of suppression file for x86_64 compiler binaries (which
can be for any target CPU), linked to the fact that indexbyte function
in x86_64 RTL reads memory by 16-byte long chuncks, thus possibly
reading past end of allocation.
cat fpc-suppressions.txt
{
<avoid_invalid_read_in_indexbyte>
Memcheck:Addr16
fun:SYSTEM_$$_INDEXBYTE$formal$INT64$BYTE$$INT64
}
{
<avoid_invalid_read_in_comparebyte>
Memcheck:Addr16
fun:SYSTEM_$$_COMPAREBYTE$formal$formal$INT64$$INT64
}