I just ran purify against the current Parrot CVS as of today at 10 AM PDT.
Here are the results:
jwilmes@jwilmes-sun:/apps/users/jwilmes/devel/parrot$ ./test_prog test.pbc
**** Purify instrumented test_prog (pid 2187 at Wed Sep 12 10:05:34 2001)
* Purify 5.2 Solaris 2 (32-bit), Copyright (C) 1992-2000 Rational Software Corp. All
rights reserved.
* For contact information type: "purify -help"
* Command-line: test_prog
* Options settings: -purify -windows=no \
-purify-home=/usr/SD/rational/solaris2bin/../products/developertools.5.2.GA/releases/DeveloperTools.5.2/sun4_solaris2/bin/../../../purify-5.2-solaris2
* License successfully checked out.
* Command-line: ./test_prog test.pbc
I reg 1 is 1000314334
I reg 5 is 1000314563
I reg 2 is 10000000
I reg 2 is 229
I reg 4 is 30000000
**** Purify instrumented test_prog (pid 2187) ****
UMR: Uninitialized memory read:
* This is occurring while in:
_unpacked_to_decimal_two [libc.so.1]
__k_quadruple_to_decimal [libc.so.1]
quadruple_to_decimal [libc.so.1]
qfconvert [libc.so.1]
_doprnt [libc.so.1]
printf [libc.so.1]
* Reading 1 byte from 0xffbeda40 on the stack.
* Address 0xffbeda40 is 1024 bytes below frame pointer in function
_unpacked_to_decimal_two.
N reg 1 is 30000000.000000
I reg 2 is 229
N reg 2 is 229.000000
N reg 1 is 131004.366812
**** Purify instrumented test_prog (pid 2187) ****
Current file descriptors in use: 6
FIU: file descriptor 0: <stdin>
FIU: file descriptor 1: <stdout>
FIU: file descriptor 2: <stderr>
FIU: file descriptor 3: "test.pbc", O_RDONLY
* File info: -rw-r--r-- 1 jwilmes eman 268 Sep 12 10:03
* File position: 0
* This file descriptor was allocated from:
__open [libc.so.1]
_open [libc.so.1]
main [test_main.c:62]
_start [crt1.o]
FIU: file descriptor 26: <reserved for Purify internal use>
FIU: file descriptor 27: <reserved for Purify internal use>
**** Purify instrumented test_prog (pid 2187) ****
Purify: Searching for all memory leaks...
Memory leaked: 52 bytes (0.0793%); potentially leaked: 65536 bytes (99.9%)
MLK: 52 bytes leaked at 0xa0520
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:24]
main [test_main.c:26]
_start [crt1.o]
PLK: 32768 bytes potentially leaked at 0xa2600
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:30]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xa05a8
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:29]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xaa658
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:31]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xac6b0
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:32]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xae708
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:75]
main [test_main.c:26]
_start [crt1.o]
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Blocks Bytes
Leaked 1 52
Potentially Leaked 5 65536
In-Use 0 0
----------------------------------------
Total Allocated 6 65588
**** Purify instrumented test_prog (pid 2187) ****
* Program exited with status code 0.
* 1 access error, 2 total occurrences.
* 52 bytes leaked.
* 65536 bytes potentially leaked.
* Basic memory usage (including Purify overhead):
432500 code
93044 data/bss
73728 heap (peak use)
2688 stack
* Shared library memory usage (including Purify overhead):
1456 libpure_solaris2_init.so.1 (shared code)
252 libpure_solaris2_init.so.1 (private data)
1051960 libc.so.1_pure_p3_c0_520_57_32_1115336 (shared code)
108024 libc.so.1_pure_p3_c0_520_57_32_1115336 (private data)
2316 libdl.so.1_pure_p3_c0_520_57_32_4528 (shared code)
4 libdl.so.1_pure_p3_c0_520_57_32_4528 (private data)
13528 libinternal_stubs.so.1 (shared code)
916 libinternal_stubs.so.1 (private data)
14284 libc_psr.so.1_pure_p3_c0_520_57_32 (shared code)
0 libc_psr.so.1_pure_p3_c0_520_57_32 (private data)
* Memory mapped usage:
8192 mmap'd at 0xfebf0000
jwilmes@jwilmes-sun:/apps/users/jwilmes/devel/parrot$ ./test_prog test2.pbc
**** Purify instrumented test_prog (pid 2331 at Wed Sep 12 10:11:19 2001)
* Purify 5.2 Solaris 2 (32-bit), Copyright (C) 1992-2000 Rational Software Corp. All
rights reserved.
* For contact information type: "purify -help"
* Command-line: test_prog
* Options settings: -purify -windows=no \
-purify-home=/usr/SD/rational/solaris2bin/../products/developertools.5.2.GA/releases/DeveloperTools.5.2/sun4_solaris2/bin/../../../purify-5.2-solaris2
* License successfully checked out.
* Command-line: ./test_prog test2.pbc
S reg 1 is Hello World
S reg 1 is Hello Worl
S reg 1 is Hello Wor
S reg 1 is Hello Wo
S reg 1 is Hello W
S reg 1 is Hello
S reg 1 is Hello
S reg 1 is Hell
S reg 1 is Hel
S reg 1 is He
S reg 1 is H
**** Purify instrumented test_prog (pid 2331) ****
Current file descriptors in use: 6
FIU: file descriptor 0: <stdin>
FIU: file descriptor 1: <stdout>
FIU: file descriptor 2: <stderr>
FIU: file descriptor 3: "test2.pbc", O_RDONLY
* File info: -rw-r--r-- 1 jwilmes eman 144 Sep 12 10:05
* File position: 0
* This file descriptor was allocated from:
__open [libc.so.1]
_open [libc.so.1]
main [test_main.c:62]
_start [crt1.o]
FIU: file descriptor 26: <reserved for Purify internal use>
FIU: file descriptor 27: <reserved for Purify internal use>
**** Purify instrumented test_prog (pid 2331) ****
Purify: Searching for all memory leaks...
Memory leaked: 52 bytes (0.0792%); potentially leaked: 65536 bytes (99.8%)
MLK: 52 bytes leaked at 0xa0520
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:24]
main [test_main.c:26]
_start [crt1.o]
PLK: 32768 bytes potentially leaked at 0xa2600
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:30]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xa05a8
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:29]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xaa658
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:31]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xac6b0
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:32]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xae708
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:75]
main [test_main.c:26]
_start [crt1.o]
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Blocks Bytes
Leaked 1 52
Potentially Leaked 5 65536
In-Use 3 51
----------------------------------------
Total Allocated 9 65639
**** Purify instrumented test_prog (pid 2331) ****
* Program exited with status code 0.
* 0 access errors, 0 total occurrences.
* 52 bytes leaked.
* 65536 bytes potentially leaked.
* Basic memory usage (including Purify overhead):
432500 code
93044 data/bss
73728 heap (peak use)
2688 stack
* Shared library memory usage (including Purify overhead):
1456 libpure_solaris2_init.so.1 (shared code)
252 libpure_solaris2_init.so.1 (private data)
1051960 libc.so.1_pure_p3_c0_520_57_32_1115336 (shared code)
108024 libc.so.1_pure_p3_c0_520_57_32_1115336 (private data)
2316 libdl.so.1_pure_p3_c0_520_57_32_4528 (shared code)
4 libdl.so.1_pure_p3_c0_520_57_32_4528 (private data)
13528 libinternal_stubs.so.1 (shared code)
916 libinternal_stubs.so.1 (private data)
14284 libc_psr.so.1_pure_p3_c0_520_57_32 (shared code)
0 libc_psr.so.1_pure_p3_c0_520_57_32 (private data)
* Memory mapped usage:
8192 mmap'd at 0xfebf0000
You have new mail in /var/mail/jwilmes
jwilmes@jwilmes-sun:/apps/users/jwilmes/devel/parrot$ ./test_prog test3.pbc
**** Purify instrumented test_prog (pid 2338 at Wed Sep 12 10:11:30 2001)
* Purify 5.2 Solaris 2 (32-bit), Copyright (C) 1992-2000 Rational Software Corp. All
rights reserved.
* For contact information type: "purify -help"
* Command-line: test_prog
* Options settings: -purify -windows=no \
-purify-home=/usr/SD/rational/solaris2bin/../products/developertools.5.2.GA/releases/DeveloperTools.5.2/sun4_solaris2/bin/../../../purify-5.2-solaris2
* License successfully checked out.
* Command-line: ./test_prog test3.pbc
I reg 1 is 0
I reg 1 is 1
I reg 1 is 2
I reg 1 is 3
I reg 1 is 4
I reg 1 is 5
I reg 1 is 6
I reg 1 is 7
I reg 1 is 8
I reg 1 is 9
I reg 1 is 0
I reg 1 is 1
I reg 1 is 2
I reg 1 is 3
I reg 1 is 4
I reg 1 is 5
I reg 1 is 6
I reg 1 is 7
I reg 1 is 8
I reg 1 is 9
I reg 1 is 9
I reg 1 is 8
I reg 1 is 7
I reg 1 is 6
**** Purify instrumented test_prog (pid 2338) ****
UMR: Uninitialized memory read:
* This is occurring while in:
print_i [basic_opcodes.c:148]
runops [interpreter.c:17]
main [test_main.c:76]
_start [crt1.o]
* Reading 4 bytes from 0xa1814 in the heap.
* Address 0xa1814 is 4716 bytes into a malloc'd block at 0xa05a8 of 8192 bytes.
* This block was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:29]
main [test_main.c:26]
_start [crt1.o]
I reg 1 is 0
I reg 1 is 4
I reg 1 is 3
I reg 1 is 2
I reg 1 is 1
I reg 1 is 0
I reg 1 is 9
I reg 1 is 8
I reg 1 is 7
I reg 1 is 6
I reg 1 is 5
I reg 1 is 4
I reg 1 is 3
I reg 1 is 2
I reg 1 is 1
I reg 1 is 0
I reg 1 is 0
I reg 1 is 1
I reg 1 is 2
I reg 1 is 3
I reg 1 is 4
I reg 1 is 5
I reg 1 is 6
I reg 1 is 7
I reg 1 is 8
I reg 1 is 9
I reg 1 is 0
I reg 1 is 1
I reg 1 is 2
I reg 1 is 3
I reg 1 is 4
I reg 1 is 5
I reg 1 is 6
I reg 1 is 7
I reg 1 is 8
I reg 1 is 9
I reg 1 is 9
I reg 1 is 8
I reg 1 is 7
I reg 1 is 6
I reg 1 is 0
I reg 1 is 4
I reg 1 is 3
I reg 1 is 2
I reg 1 is 1
I reg 1 is 0
I reg 1 is 9
I reg 1 is 8
I reg 1 is 7
I reg 1 is 6
I reg 1 is 5
I reg 1 is 4
I reg 1 is 3
I reg 1 is 2
I reg 1 is 1
I reg 1 is 0
**** Purify instrumented test_prog (pid 2338) ****
IPR: Invalid pointer read:
* This is occurring while in:
runops [interpreter.c:16]
main [test_main.c:76]
_start [crt1.o]
* Reading 4 bytes from 0xfebf059c between the heap and the stack.
**** Purify instrumented test_prog (pid 2338) ****
Current file descriptors in use: 6
FIU: file descriptor 0: <stdin>
FIU: file descriptor 1: <stdout>
FIU: file descriptor 2: <stderr>
FIU: file descriptor 3: "test3.pbc", O_RDONLY
* File info: -rw-r--r-- 1 jwilmes eman 1436 Sep 12 10:05
* File position: 0
* This file descriptor was allocated from:
__open [libc.so.1]
_open [libc.so.1]
main [test_main.c:62]
_start [crt1.o]
FIU: file descriptor 26: <reserved for Purify internal use>
FIU: file descriptor 27: <reserved for Purify internal use>
**** Purify instrumented test_prog (pid 2338) ****
Purify: Searching for all memory leaks...
Memory leaked: 52 bytes (0.0634%); potentially leaked: 81920 bytes (99.9%)
MLK: 52 bytes leaked at 0xa0520
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:24]
main [test_main.c:26]
_start [crt1.o]
PLK: 32768 bytes potentially leaked at 0xa2600
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:30]
main [test_main.c:26]
_start [crt1.o]
PLK: 16384 bytes potentially leaked in 2 blocks
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
Parrot_push_i [register.c:21]
push_i [basic_opcodes.c:330]
runops [interpreter.c:17]
main [test_main.c:76]
* Block of 8192 bytes (2 times); last block at 0xb27b8
PLK: 8192 bytes potentially leaked at 0xa05a8
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:29]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xaa658
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:31]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xac6b0
* This memory was allocated from:
malloc [rtlib.o]
Allocate_Aligned [memory.c:27]
make_interpreter [interpreter.c:32]
main [test_main.c:26]
_start [crt1.o]
PLK: 8192 bytes potentially leaked at 0xae708
* This memory was allocated from:
malloc [rtlib.o]
Sys_Allocate [memory.c:35]
make_interpreter [interpreter.c:75]
main [test_main.c:26]
_start [crt1.o]
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Blocks Bytes
Leaked 1 52
Potentially Leaked 7 81920
In-Use 0 0
----------------------------------------
Total Allocated 8 81972
**** Purify instrumented test_prog (pid 2338) ****
* Program exited with status code 0.
* 2 access errors, 3 total occurrences.
* 52 bytes leaked.
* 81920 bytes potentially leaked.
* Basic memory usage (including Purify overhead):
432500 code
93044 data/bss
90112 heap (peak use)
2688 stack
* Shared library memory usage (including Purify overhead):
1456 libpure_solaris2_init.so.1 (shared code)
252 libpure_solaris2_init.so.1 (private data)
1051960 libc.so.1_pure_p3_c0_520_57_32_1115336 (shared code)
108024 libc.so.1_pure_p3_c0_520_57_32_1115336 (private data)
2316 libdl.so.1_pure_p3_c0_520_57_32_4528 (shared code)
4 libdl.so.1_pure_p3_c0_520_57_32_4528 (private data)
13528 libinternal_stubs.so.1 (shared code)
916 libinternal_stubs.so.1 (private data)
14284 libc_psr.so.1_pure_p3_c0_520_57_32 (shared code)
0 libc_psr.so.1_pure_p3_c0_520_57_32 (private data)
* Memory mapped usage:
8192 mmap'd at 0xfebf0000
jwilmes@jwilmes-sun:/apps/users/jwilmes/devel/parrot$