Purify instrumented ./pplusdemo (pid 30669)
UMR: Uninitialized memory read:
* This is occurring while in:
strlen [rtlib.o]
std::basic_ostream< char,std::char_traits< char>> & std::operator
<<
>(std::basic_ostream< char,std::char_traits<
char>> &, char const *) [libstdc++.so.5]
main [pplusdemo.cpp:7]
__libc_start_main [libc.so.6]
_start [crt1.o]
* Reading 1 byte from 0x80b45e0 in the heap.
* Address 0x80b45e0 is at the beginning of a malloc'd block of 4 bytes.
* This block was allocated from:
malloc [rtlib.o]
operator new( unsigned) [libstdc++.so.5]
operator new []( unsigned) [libstdc++.so.5]
main [pplusdemo.cpp:5]
__libc_start_main [libc.so.6]
_start [crt1.o]
Purify instrumented ./pplusdemo (pid 30669)
ABW: Array bounds write:
* This is occurring while in:
strcpy [rtlib.o]
main [pplusdemo.cpp:8]
__libc_start_main [libc.so.6]
_start [crt1.o]
* Writing 5 bytes to 0x80b45e0 in the heap (1 byte at 0x80b45e4 illegal).
* Address 0x80b45e0 is at the beginning of a malloc'd block of 4 bytes.
* This block was allocated from:
malloc [rtlib.o]
operator new( unsigned) [libstdc++.so.5]
operator new []( unsigned) [libstdc++.so.5]
main [pplusdemo.cpp:5]
__libc_start_main [libc.so.6]
_start [crt1.o]
Purify instrumented ./pplusdemo (pid 30669)
ABR: Array bounds read:
* This is occurring while in:
strlen [rtlib.o]
std::basic_ostream< char,std::char_traits< char>> & std::operator
<<
>(std::basic_ostream< char,std::char_traits< char>> &, char const *) [libstdc++.so.5] main [pplusdemo.cpp:9] __libc_start_main [libc.so.6] _start [crt1.o] * Reading 5 bytes from 0x80b45e0 in the heap (1 byte at 0x80b45e4 illegal). * Address 0x80b45e0 is at the beginning of a malloc'd block of 4 bytes. * This block was allocated from: malloc [rtlib.o] operator new( unsigned) [libstdc++.so.5] operator new []( unsigned) [libstdc++.so.5] main [pplusdemo.cpp:5] __libc_start_main [libc.so.6] _start [crt1.o] Purify instrumented ./pplusdemo (pid 30669) FMM: Freeing mismatched memory: * This is occurring while in: operator delete( void *) [rtlib.o] main [pplusdemo.cpp:10] __libc_start_main [libc.so.6] _start [crt1.o] * Attempting to free block at 0x80b45e0 in the heap. * Address 0x80b45e0 is at the beginning of a malloc'd block of 4 bytes. * This block was allocated from: malloc [rtlib.o] operator new( unsigned) [libstdc++.so.5] operator new []( unsigned) [libstdc++.so.5] main [pplusdemo.cpp:5] __libc_start_main [libc.so.6] _start [crt1.o] * This block of memory was obtained using an allocation routine which is not compatible with the routine by which it is being freed. Purify instrumented ./pplusdemo (pid 30669) FMR: Free memory read: * This is occurring while in: main [pplusdemo.cpp:11] __libc_start_main [libc.so.6] _start [crt1.o] * Reading 1 byte from 0x80b45e0 in the heap. * Address 0x80b45e0 is at the beginning of a freed block of 4 bytes. * This block was allocated from: malloc [rtlib.o] operator new( unsigned) [libstdc++.so.5] operator new []( unsigned) [libstdc++.so.5] main [pplusdemo.cpp:5] __libc_start_main [libc.so.6] _start [crt1.o] * There have been 0 frees since this block was freed from: free [rtlib.o] _ZdLpV [libstdc++.so.5] main [pplusdemo.cpp:10] __libc_start_main [libc.so.6] _start [crt1.o] Purify instrumented ./pplusdemo (pid 30669) FMW: Free memory write: * This is occurring while in: main [pplusdemo.cpp:11] __libc_start_main [libc.so.6] _start [crt1.o] * Writing 1 byte to 0x80b45e0 in the heap. * Address 0x80b45e0 is at the beginning of a freed block of 4 bytes. * This block was allocated from: malloc [rtlib.o] operator new( unsigned) [libstdc++.so.5] operator new []( unsigned) [libstdc++.so.5] main [pplusdemo.cpp:5] __libc_start_main [libc.so.6] _start [crt1.o] * There have been 0 frees since this block was freed from: free [rtlib.o] _ZdLpV [libstdc++.so.5] main [pplusdemo.cpp:10] __libc_start_main [libc.so.6] _start [crt1.o] Purify instrumented ./pplusdemo (pid 30669) FUM: Freeing unallocated memory: * This is occurring while in: free [rtlib.o] _ZdLpV [libstdc++.so.5] main [pplusdemo.cpp:12] __libc_start_main [libc.so.6] _start [crt1.o] * Attempting to free block at 0x80b45e0 already freed. * This block was allocated from: malloc [rtlib.o] operator new( unsigned) [libstdc++.so.5] operator new []( unsigned) [libstdc++.so.5] main [pplusdemo.cpp:5] __libc_start_main [libc.so.6] _start [crt1.o] * There have been 1 frees since this block was freed from: free [rtlib.o] _ZdLpV [libstdc++.so.5] main [pplusdemo.cpp:10] __libc_start_main [libc.so.6] _start [crt1.o] Purify instrumented ./pplusdemo (pid 30669) Current file descriptors in use: 5 FIU: file descriptor 0:
FIU: file descriptor 1:
FIU: file descriptor 2:
FIU: file descriptor 26:
FIU: file descriptor 27:
Purify instrumented ./pplusdemo (pid 30669) Purify: Searching for all memory leaks... Memory leaked: 0 bytes (0%); potentially leaked: 0 bytes (0%) Purify Heap Analysis (combining suppressed and unsuppressed blocks) Blocks Bytes Leaked 0 0 Potentially Leaked 0 0 In-Use 0 0 ---------------------------------------- Total Allocated 0 0 Purify instrumented ./pplusdemo (pid 30669) * Program exited with status code 0. * 7 access errors, 7 total occurrences. * 0 bytes leaked. * 0 bytes potentially leaked. * Basic memory usage (including Purify overhead): 290012 code 152928 data/bss 6816 heap (peak use) 7800 stack