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$