Forum > FPC development
Building trunk with heaptrace shows leaks in compiler/tools.
TRon:
Hi,
Trying to build trunk from gitlab source by means of: "make DEBUG=1 OPT="-O- -glh -k--verbose=5"
That fails with:
--- Code: ---/fpmake compile --localunitdir=.. --os=linux --cpu=x86_64 -o -gl -o -Ur -o -Xs -o -O2 -o -n -o -Cg -o -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -o -O- -o -glh -o -k--verbose=5 -o -dx86_64 -o -dDEBUG -o -dRELEASE --compiler=/media/ramdisk-8gb/repo/fpc/compiler/ppcx64 -bu -o -XX -o -CX
The installer encountered the following error:
Compiler returns invalid information, check if fpc -iV works
--- End code ---
because:
--- Code: ---./some/long/path/to/ppcx64
Heap dump by heaptrc unit of "/media/ramdisk-8gb/repo/fpc/compiler/ppcx64"
4153 memory blocks allocated : 468932/483944
4150 memory blocks freed : 444112/459112
3 unfreed memory blocks : 24820
True heap size : 458752
True free heap : 433120
Should be : 433344
Call trace for block $00007F6400A487C0 size 57
$0000000000422346 ReAllocMem, line 352 of ../inc/heap.inc
$0000000000410D79 $fpc_ansistr_setlength, line 809 of ../inc/astrings.inc
$000000000041042E $fpc_shortstr_to_ansistr, line 522 of ../inc/astrings.inc
$00000000005C88F4 WriteHelpPages, line 1056 of options.pas
$00000000005D233A read_arguments, line 4616 of options.pas
$000000000043D565 InitCompiler, line 224 of compiler.pas
$000000000043D6B5 Compile, line 272 of compiler.pas
$00000000004012EA $main, line 301 of pp.pas
$0000000000431415 SysEntry_InitTLS, line 342 of system.pp
$0000000000431415 SysEntry_InitTLS, line 342 of system.pp
Call trace for block $00007F6400A5CB50 size 24703
$0000000000422102 Getmem, line 286 of ../inc/heap.inc
$000000000040F69E NewAnsiString, line 123 of ../inc/astrings.inc
$0000000000410FE6 $fpc_ansistr_copy, line 933 of ../inc/astrings.inc
$000000000048CAB8 MsgReplace, line 107 of cmsgs.pas
$000000000048DC3B Get, line 458 of cmsgs.pas
$0000000000448269 MessageStr, line 780 of verbose.pas
$00000000005C84B3 WriteHelpPages, line 907 of options.pas
$00000000005D233A read_arguments, line 4616 of options.pas
$000000000043D565 InitCompiler, line 224 of compiler.pas
$000000000043D6B5 Compile, line 272 of compiler.pas
$00000000004012EA $main, line 301 of pp.pas
$0000000000431415 SysEntry_InitTLS, line 342 of system.pp
Call trace for block $00007F6400A30300 size 60
$0000000000422102 Getmem, line 286 of ../inc/heap.inc
$000000000040F69E NewAnsiString, line 123 of ../inc/astrings.inc
$0000000000410CC6 $fpc_ansistr_setlength, line 793 of ../inc/astrings.inc
$000000000041042E $fpc_shortstr_to_ansistr, line 522 of ../inc/astrings.inc
$00000000005C8469 WriteHelpPages, line 905 of options.pas
$00000000005D233A read_arguments, line 4616 of options.pas
$000000000043D565 InitCompiler, line 224 of compiler.pas
$000000000043D6B5 Compile, line 272 of compiler.pas
$00000000004012EA $main, line 301 of pp.pas
$0000000000431415 SysEntry_InitTLS, line 342 of system.pp
--- End code ---
Which seems logical enough to me: compiler leaks memory and does not return the expected result from the compiler for makefile because of the heaptrace. Problem is, how do I build the whole zhazam with glh but exclude ppcx64 ?
And why are there memory-leaks all over (this is just a small example) ? doesn't anyone (CI/CD?) ever build with tracing on ?
edit: topic title change
Thaddy:
--- Quote from: TRon on January 25, 2023, 11:49:08 am ---And why are there memory-leaks all over (this is just a small example) ? doesn't anyone (CI/CD?) ever build with tracing on ?
--- End quote ---
Highly unlikely, those leaks. Can't reproduce with MY build script and trunk of today (linux and windows)
Try this instead: make OPT="-O- -glh -k--verbose=5 -dDEBUG"
About the -k option: are you indeed using an external linker (ld)? Otherwise that option is pointless when the internal linker is used.
TRon:
--- Quote from: Thaddy on January 25, 2023, 12:10:07 pm ---Highly unlikely, those leaks. Can't reproduce with MY build script and trunk of today (linux and windows)
--- End quote ---
Build 20-25 minutes ago from gitlab with 322 bootstrap. And I can only go with what make tells me :-X
--- Quote ---Try this instead: make OPT="-O- -glh -k--verbose=5 -dDEBUG"
--- End quote ---
Will do that and report back.
--- Quote ---About the -k option: are you indeed using an external linker (ld)? Otherwise that option is pointless when the internal linker is used.
--- End quote ---
That is exactly the point: to see if something else gets dragged in (see other thread). And yes, I am able to see (some) output from that option.
PS: sorry, I just see I forgot to copy-paste the all target. but that is/was besides the point.
TRon:
--- Code: ---$ cd /media/ramdisk-8gb/
$ mkdir repo
$ cd repo
$ ls
$ git clone https://gitlab.com/freepascal.org/fpc/source.git fpc
Cloning into 'fpc'...
remote: Enumerating objects: 701112, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 701112 (delta 37), reused 5 (delta 2), pack-reused 701021
Receiving objects: 100% (701112/701112), 191.06 MiB | 6.05 MiB/s, done.
Resolving deltas: 100% (563786/563786), done.
Updating files: 100% (21055/21055), done.
$ cd fpc
$ git status
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean
$ git rev-parse HEAD
0907628b73ebee55fde0ea0670f43e5aa3ebd4df
$ make all OPT="-O- -glh -k--verbose=5 -dDEBUG"
--- End code ---
and while the build is busy, the first output from -k
--- Code: ----- snip ---
make compiler
make[5]: Entering directory '/media/ramdisk-8gb/repo/fpc/compiler'
/usr/bin/mkdir -p x86_64/units/x86_64-linux
/usr/bin/mkdir -p x86_64/bin/x86_64-linux
/home/apps/fpc/3.2.2/bin/x86_64-linux/ppcx64 -Ur -Xs -O2 -n -Fux86_64 -Fusystems -Fu/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Fix86_64 -FEx86_64/bin/x86_64-linux -FUx86_64/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -dRELEASE -O- -glh -k--verbose=5 -dDEBUG -dx86_64 -dGDB -Fux86 -Fix86 -o/media/ramdisk-8gb/repo/fpc/compiler/ppc1 pp.pas
GNU ld (GNU Binutils for Debian) 2.40
Supported emulations:
elf_x86_64
elf32_x86_64
elf_i386
elf_iamcu
i386pep
i386pe
opened script file /media/ramdisk-8gb/repo/fpc/compiler/link32110.res
using internal linker script:
==================================================
/* Script for -z combreloc -z separate-code */
/* Copyright (C) 2014-2023 Free Software Foundation, Inc.
Copying and distribution of this script, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. */
OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
"elf64-x86-64")
OUTPUT_ARCH(i386:x86-64)
ENTRY(_start)
SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SEARCH_DIR("=/lib64"); SEARCH_DIR("=/usr/lib64"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("=/usr/x86_64-linux-gnu/lib");
SECTIONS
{
PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x400000)); . = SEGMENT_START("text-segment", 0x400000) + SIZEOF_HEADERS;
.interp : { *(.interp) }
.note.gnu.build-id : { *(.note.gnu.build-id) }
.hash : { *(.hash) }
.gnu.hash : { *(.gnu.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.gnu.version : { *(.gnu.version) }
.gnu.version_d : { *(.gnu.version_d) }
.gnu.version_r : { *(.gnu.version_r) }
.rela.dyn :
{
*(.rela.init)
*(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
*(.rela.fini)
*(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
*(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
*(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
*(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
*(.rela.ctors)
*(.rela.dtors)
*(.rela.got)
*(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
*(.rela.ldata .rela.ldata.* .rela.gnu.linkonce.l.*)
*(.rela.lbss .rela.lbss.* .rela.gnu.linkonce.lb.*)
*(.rela.lrodata .rela.lrodata.* .rela.gnu.linkonce.lr.*)
*(.rela.ifunc)
}
.rela.plt :
{
*(.rela.plt)
PROVIDE_HIDDEN (__rela_iplt_start = .);
*(.rela.iplt)
PROVIDE_HIDDEN (__rela_iplt_end = .);
}
.relr.dyn : { *(.relr.dyn) }
. = ALIGN(CONSTANT (MAXPAGESIZE));
.init :
{
KEEP (*(SORT_NONE(.init)))
}
.plt : { *(.plt) *(.iplt) }
.plt.got : { *(.plt.got) }
.plt.sec : { *(.plt.sec) }
.text :
{
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
*(.text.exit .text.exit.*)
*(.text.startup .text.startup.*)
*(.text.hot .text.hot.*)
*(SORT(.text.sorted.*))
*(.text .stub .text.* .gnu.linkonce.t.*)
/* .gnu.warning sections are handled specially by elf.em. */
*(.gnu.warning)
}
.fini :
{
KEEP (*(SORT_NONE(.fini)))
}
PROVIDE (__etext = .);
PROVIDE (_etext = .);
PROVIDE (etext = .);
. = ALIGN(CONSTANT (MAXPAGESIZE));
/* Adjust the address for the rodata segment. We want to adjust up to
the same address within the page on the next page up. */
. = SEGMENT_START("rodata-segment", ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)));
.rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) }
.rodata1 : { *(.rodata1) }
.eh_frame_hdr : { *(.eh_frame_hdr) *(.eh_frame_entry .eh_frame_entry.*) }
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) *(.eh_frame.*) }
.sframe : ONLY_IF_RO { *(.sframe) *(.sframe.*) }
.gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) }
.gnu_extab : ONLY_IF_RO { *(.gnu_extab*) }
/* These sections are generated by the Sun/Oracle C++ compiler. */
.exception_ranges : ONLY_IF_RO { *(.exception_ranges*) }
/* Adjust the address for the data segment. We want to adjust up to
the same address within the page on the next page up. */
. = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE));
/* Exception handling */
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) *(.eh_frame.*) }
.sframe : ONLY_IF_RW { *(.sframe) *(.sframe.*) }
.gnu_extab : ONLY_IF_RW { *(.gnu_extab) }
.gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) }
.exception_ranges : ONLY_IF_RW { *(.exception_ranges*) }
/* Thread Local Storage sections */
.tdata :
{
PROVIDE_HIDDEN (__tdata_start = .);
*(.tdata .tdata.* .gnu.linkonce.td.*)
}
.tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) }
.preinit_array :
{
PROVIDE_HIDDEN (__preinit_array_start = .);
KEEP (*(.preinit_array))
PROVIDE_HIDDEN (__preinit_array_end = .);
}
.init_array :
{
PROVIDE_HIDDEN (__init_array_start = .);
KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*)))
KEEP (*(.init_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .ctors))
PROVIDE_HIDDEN (__init_array_end = .);
}
.fini_array :
{
PROVIDE_HIDDEN (__fini_array_start = .);
KEEP (*(SORT_BY_INIT_PRIORITY(.fini_array.*) SORT_BY_INIT_PRIORITY(.dtors.*)))
KEEP (*(.fini_array EXCLUDE_FILE (*crtbegin.o *crtbegin?.o *crtend.o *crtend?.o ) .dtors))
PROVIDE_HIDDEN (__fini_array_end = .);
}
.ctors :
{
/* gcc uses crtbegin.o to find the start of
the constructors, so we make sure it is
first. Because this is a wildcard, it
doesn't matter if the user does not
actually link against crtbegin.o; the
linker won't look for a file to match a
wildcard. The wildcard also means that it
doesn't matter which directory crtbegin.o
is in. */
KEEP (*crtbegin.o(.ctors))
KEEP (*crtbegin?.o(.ctors))
/* We don't want to include the .ctor section from
the crtend.o file until after the sorted ctors.
The .ctor section from the crtend file contains the
end of ctors marker and it must be last */
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
}
.dtors :
{
KEEP (*crtbegin.o(.dtors))
KEEP (*crtbegin?.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
}
.jcr : { KEEP (*(.jcr)) }
.data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro .data.rel.ro.* .gnu.linkonce.d.rel.ro.*) }
.dynamic : { *(.dynamic) }
.got : { *(.got) *(.igot) }
. = DATA_SEGMENT_RELRO_END (SIZEOF (.got.plt) >= 24 ? 24 : 0, .);
.got.plt : { *(.got.plt) *(.igot.plt) }
.data :
{
*(.data .data.* .gnu.linkonce.d.*)
SORT(CONSTRUCTORS)
}
.data1 : { *(.data1) }
_edata = .; PROVIDE (edata = .);
. = .;
__bss_start = .;
.bss :
{
*(.dynbss)
*(.bss .bss.* .gnu.linkonce.b.*)
*(COMMON)
/* Align here to ensure that the .bss section occupies space up to
_end. Align after .bss to ensure correct alignment even if the
.bss section disappears because there are no input sections.
FIXME: Why do we need it? When there is no .bss section, we do not
pad the .data section. */
. = ALIGN(. != 0 ? 64 / 8 : 1);
}
.lbss :
{
*(.dynlbss)
*(.lbss .lbss.* .gnu.linkonce.lb.*)
*(LARGE_COMMON)
}
. = ALIGN(64 / 8);
. = SEGMENT_START("ldata-segment", .);
.lrodata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
{
*(.lrodata .lrodata.* .gnu.linkonce.lr.*)
}
.ldata ALIGN(CONSTANT (MAXPAGESIZE)) + (. & (CONSTANT (MAXPAGESIZE) - 1)) :
{
*(.ldata .ldata.* .gnu.linkonce.l.*)
. = ALIGN(. != 0 ? 64 / 8 : 1);
}
. = ALIGN(64 / 8);
_end = .; PROVIDE (end = .);
. = DATA_SEGMENT_END (.);
/* Stabs debugging sections. */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
.gnu.build.attributes : { *(.gnu.build.attributes .gnu.build.attributes.*) }
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to the beginning
of the section so we begin them at 0. */
/* DWARF 1. */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions. */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2. */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2. */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line .debug_line.* .debug_line_end) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions. */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* DWARF 3. */
.debug_pubtypes 0 : { *(.debug_pubtypes) }
.debug_ranges 0 : { *(.debug_ranges) }
/* DWARF 5. */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.debug_sup 0 : { *(.debug_sup) }
.gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
/DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
}
==================================================
/usr/bin/ld: mode elf_x86_64
attempt to open /media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux/si_prc.o succeeded
/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux/si_prc.o
--- End code ---
the first trace within 0.02 seconds (next post, as it will not fit otherwise)
TRon:
memory trace 1:
--- Code: ---make -C linux all
make[7]: Entering directory '/media/ramdisk-8gb/repo/fpc/rtl/linux'
make /media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux
make[8]: Entering directory '/media/ramdisk-8gb/repo/fpc/rtl/linux'
make[8]: '/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux' is up to date.
make[8]: Leaving directory '/media/ramdisk-8gb/repo/fpc/rtl/linux'
as --64 -o /media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux/abitag.o x86_64/abitag.as
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE -Us -Sg system.pp
Heap dump by heaptrc unit of "/media/ramdisk-8gb/repo/fpc/compiler/ppc1"
1648011 memory blocks allocated : 182326507/183514336
1647998 memory blocks freed : 182324315/183512144
13 unfreed memory blocks : 2192
True heap size : 13762560
True free heap : 13757472
Should be : 13757872
Call trace for block $00007F6015397820 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$000000000056D401 GENINTCONSTNODE, line 246 of ncon.pas
$00000000006204A5 STATEMENT_SYSSYM, line 468 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AC09 SUB_EXPR, line 4653 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C534 EXPR, line 4924 of pexpr.pas
$00000000006526B6 STATEMENT, line 1441 of pstatmnt.pas
$0000000000652BCC STATEMENT_BLOCK, line 1579 of pstatmnt.pas
$0000000000652527 STATEMENT, line 1389 of pstatmnt.pas
Call trace for block $00007F6014861C80 size 176
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$0000000000584863 CREATE, line 180 of nadd.pas
$000000000062AD52 SUB_EXPR, line 4656 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C534 EXPR, line 4924 of pexpr.pas
$00000000006526B6 STATEMENT, line 1441 of pstatmnt.pas
$0000000000652BCC STATEMENT_BLOCK, line 1579 of pstatmnt.pas
$0000000000652527 STATEMENT, line 1389 of pstatmnt.pas
$000000000064EF54 IF_STATEMENT, line 74 of pstatmnt.pas
$0000000000652535 STATEMENT, line 1391 of pstatmnt.pas
$000000000064EF77 IF_STATEMENT, line 79 of pstatmnt.pas
$0000000000652535 STATEMENT, line 1391 of pstatmnt.pas
$0000000000652B8E STATEMENT_BLOCK, line 1574 of pstatmnt.pas
$0000000000652527 STATEMENT, line 1389 of pstatmnt.pas
$000000000064EF54 IF_STATEMENT, line 74 of pstatmnt.pas
Call trace for block $00007F601539ADC0 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$000000000056D831 GENCONSTSYMTREE, line 333 of ncon.pas
$0000000000627737 FACTOR_HANDLE_SYM, line 3116 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C534 EXPR, line 4924 of pexpr.pas
$00000000006526B6 STATEMENT, line 1441 of pstatmnt.pas
$0000000000652BCC STATEMENT_BLOCK, line 1579 of pstatmnt.pas
$0000000000652527 STATEMENT, line 1389 of pstatmnt.pas
$000000000064EF54 IF_STATEMENT, line 74 of pstatmnt.pas
Call trace for block $00007F6014817680 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$000000000056D831 GENCONSTSYMTREE, line 333 of ncon.pas
$0000000000627737 FACTOR_HANDLE_SYM, line 3116 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AC09 SUB_EXPR, line 4653 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
Call trace for block $00007F601485E980 size 176
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$0000000000584863 CREATE, line 180 of nadd.pas
$000000000062AD52 SUB_EXPR, line 4656 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C3AF EXPR, line 4900 of pexpr.pas
$00000000006526B6 STATEMENT, line 1441 of pstatmnt.pas
Call trace for block $00007F6014817340 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$000000000056D831 GENCONSTSYMTREE, line 333 of ncon.pas
$0000000000627737 FACTOR_HANDLE_SYM, line 3116 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
Call trace for block $00007F60153AD8C0 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$00000000004DDB88 CREATEFORCOPY, line 767 of node.pas
$00000000004DE70F DOGETCOPY, line 1016 of node.pas
$000000000056EA19 DOGETCOPY, line 662 of ncon.pas
$00000000004DEC0C DOGETCOPY, line 1111 of node.pas
$00000000004DF069 DOGETCOPY, line 1212 of node.pas
$000000000058C819 DOGETCOPY, line 1940 of nadd.pas
$00000000004DE691 GETCOPY, line 1004 of node.pas
$000000000058C17A GETCOPYANDTYPECHECK, line 493 of nadd.pas
$000000000058C01E SWAPRIGHTWITHLEFTRIGHT, line 529 of nadd.pas
$0000000000586620 SIMPLIFY, line 867 of nadd.pas
$00000000007149E4 SIMPLIFY, line 1577 of x86/nx86add.pas
$0000000000592101 PASS_TYPECHECK_INTERNAL, line 3370 of nadd.pas
$000000000058C8E6 PASS_TYPECHECK, line 1960 of nadd.pas
$0000000000559016 TYPECHECKPASS_INTERNAL_LOOP, line 72 of pass_1.pas
Call trace for block $00007F6015370200 size 176
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$00000000004DDB88 CREATEFORCOPY, line 767 of node.pas
$00000000004DE70F DOGETCOPY, line 1016 of node.pas
$00000000004DEBD9 DOGETCOPY, line 1109 of node.pas
$00000000004DF069 DOGETCOPY, line 1212 of node.pas
$000000000058C819 DOGETCOPY, line 1940 of nadd.pas
$00000000004DE691 GETCOPY, line 1004 of node.pas
$000000000058C17A GETCOPYANDTYPECHECK, line 493 of nadd.pas
$000000000058C01E SWAPRIGHTWITHLEFTRIGHT, line 529 of nadd.pas
$0000000000586620 SIMPLIFY, line 867 of nadd.pas
$00000000007149E4 SIMPLIFY, line 1577 of x86/nx86add.pas
$0000000000592101 PASS_TYPECHECK_INTERNAL, line 3370 of nadd.pas
$000000000058C8E6 PASS_TYPECHECK, line 1960 of nadd.pas
$0000000000559016 TYPECHECKPASS_INTERNAL_LOOP, line 72 of pass_1.pas
$000000000055914B TYPECHECKPASS_INTERNAL, line 110 of pass_1.pas
Call trace for block $00007F60153AD580 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$0000000000628D83 FACTOR, line 3982 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AC09 SUB_EXPR, line 4653 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
Call trace for block $00007F60153AD3E0 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$0000000000628D83 FACTOR, line 3982 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AC09 SUB_EXPR, line 4653 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
Call trace for block $00007F6015370500 size 176
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$0000000000584863 CREATE, line 180 of nadd.pas
$000000000062AD52 SUB_EXPR, line 4656 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C3AF EXPR, line 4900 of pexpr.pas
$00000000006526B6 STATEMENT, line 1441 of pstatmnt.pas
Call trace for block $00007F60153AD0A0 size 184
$0000000000420A5E GETMEM, line 286 of ../inc/heap.inc
$000000000041905D NEWINSTANCE, line 441 of ../inc/objpas.inc
$000000000056E7A8 CREATE, line 614 of ncon.pas
$0000000000628D83 FACTOR, line 3982 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062C348 COMP_EXPR, line 4881 of pexpr.pas
$0000000000620C54 STATEMENT_SYSSYM, line 700 of pexpr.pas
$00000000006274CE FACTOR_HANDLE_SYM, line 3052 of pexpr.pas
$000000000062A96E FACTOR_READ_ID, line 3576 of pexpr.pas
$0000000000627E2C FACTOR, line 3690 of pexpr.pas
$000000000062AB07 SUB_EXPR, line 4636 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
$000000000062AB38 SUB_EXPR, line 4641 of pexpr.pas
Call trace for block $00007F6016FD7760 size 16
$0000000000420CDA fpc_getmem, line 364 of ../inc/heap.inc
$000000000049C6FC RECORDPENDINGMESSAGESTATE, line 306 of switches.pas
$0000000000442EF8 CHANGEMESSAGEVERBOSITY, line 241 of verbose.pas
$00000000006B75E6 DIR_WARN, line 1767 of scandir.pas
$000000000053C81B HANDLEDIRECTIVES, line 4155 of scanner.pas
$000000000053D77C SKIPCOMMENT, line 4699 of scanner.pas
$000000000053DBF9 READTOKEN, line 4881 of scanner.pas
$0000000000619144 CONSUME, line 158 of pbase.pas
$000000000063A594 TYPES_DEC, line 1152 of pdecl.pas
$000000000063AA51 TYPE_DEC, line 1238 of pdecl.pas
$00000000005E4BA2 READ_INTERFACE_DECLARATIONS, line 3288 of psub.pas
$00000000006C06B2 PROC_UNIT, line 1041 of pmodules.pas
$00000000005CB732 COMPILE, /media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../inc/fpintres.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE si_prc.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE si_c.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE si_g.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE si_dll.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../inc/uuchar.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/unixtype.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../inc/ctypes.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/baseunix.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../inc/strings.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE -I../objpas ../objpas/objpas.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/syscall.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/unixutil.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/unix.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/errors.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../objpas/sysconst.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE linux.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE ../unix/initc.pp
/media/ramdisk-8gb/repo/fpc/compiler/ppc1 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../x86_64 -Fi../unix -Fix86_64 -FE. -FU/media/ramdisk-8gb/repo/fpc/rtl/units/x86_64-linux -Cg -Fl/usr/lib/gcc/x86_64-linux-gnu/12 -O- -glh -k--verbose=5 -dDEBUG -DD2023/01/24 -dx86_64 -dRELEASE -Fi../objpas/sysutils ../unix/sysutils.pp
Heap dump by heaptrc unit of "/media/ramdisk-8gb/repo/fpc/compiler/ppc1"
2113213 memory blocks allocated : 294090663/295321832
2113213 memory blocks freed : 294090663/295321832
0 unfreed memory blocks : 0
True heap size : 15826944
--- End code ---
And before thisis going to give discussion: no I am not talking about the last lines. I know what 0 unfree blocks mean.
Same error, thus sorry to say that using -dDebug instead does not solve the issue.
Note: I can build trunk perfectly without using traces.
edit: 24 traces in total with unfreed memory blocks (I did not check for dups)
Navigation
[0] Message Index
[#] Next page