purify and python

Ralph Heinkel heinkel at dummy.embl-heidelberg.de
Mon Jan 10 06:55:07 EST 2000


ok, after further playing around with it, I recompiled python without
threads. Magically that helped and python is now running correctly.
Strange, but it works.

Ralph



Ralph Heinkel <heinkel at dummy.embl-heidelberg.de> wrote:
> Hi, 

> since I wrote some C, C++, and F77 extensions for python, I am planning
> to use purify to test them for memory leaks and so on.
> The problem is that I cannot get a purified version of python running.
> Python seems to start and immediately exit with error code -1 (255),
> without printing any error message (See below for log). I never get
> to the python command line.

> The way I linked python is shown below. Linking python without purify
> (without any other recompilation) produces a working python version.

> Any clue? 

> I am running python 1.5.2 on IRIX 6.5 (R10000) with purify 4.1. Python
> was configure with  --with-thread  and  --without-gcc

> Ralph

> ---------------------------------------------------------------------

> Modules/Setup is:

> # Pure module.  Cannot be linked dynamically.
> # -DWITH_QUANTIFY, -DWITH_PURIFY, or -DWITH_ALL_PURE
> WHICH_PURE_PRODUCTS=-DWITH_PURIFY
> PURE_INCLS=-I/usr/pure/purify
> PURE_STUBLIBS=-L/usr/pure/purify -lpurify_stubs -lquantify_stubs
> pure puremodule.c $(WHICH_PURE_PRODUCTS) $(PURE_INCLS) $(PURE_STUBLIBS)

> The (python) modules are linked statically, i.e. *shared* not used


> This is how I linked it:

> birdie:src/Python-1.5.2/Modules$ purify -windows=no cc -g  python.o \
>  ../libpython1.5.a -DWITH_PURIFY -I/usr/pure/purify -L/usr/pure/purify \
>  -lpurify_stubs_n32 -lpthread -lmpc -lm  -o python

> ld32: WARNING 84: /usr/lib32/mips4/libmpc.a is not used for resolving 
> any symbol.
> Purify 4.1 IRIX6, Copyright (C) 1992-1997 Rational Software Corp. All 
> rights reserved. 
> .... Processing "/usr/pure/purify/libpurify_stubs_n32.so"
> .... Processing "/usr/lib32/libpthread.so"
> .... Processing "/usr/lib32/libm.so"
> .... Processing "/usr/lib32/libc.so.1"
> .... Processing "python"



> This is the output:

> birdie:src/Python-1.5.2/Modules$ ./python 
> ****  Purify instrumented ./python (pid 63792545 at Mon Jan 10 11:48:44 2000)
>   * Purify 4.1 IRIX6, Copyright (C) 1992-1997 Rational Software Corp. 
> All rights reserved. 
>   * For contact information type: "purify -help"
>   * Command-line: ./python 
>   * Options settings: -purify -windows=no -purify-home=/usr/pure/purify 
>   * Purify licensed to European Molecular Biology La
>   * Purify checking enabled.

> ****  Purify instrumented ./python (pid 63792545)  ****
> Current file descriptors in use: 5
> FIU: file descriptor 0: <stdin>
> FIU: file descriptor 1: <stdout>
> FIU: file descriptor 2: <stderr>
> FIU: file descriptor 26: <reserved for Purify internal use>
> FIU: file descriptor 27: <reserved for Purify internal use>

> ****  Purify instrumented ./python (pid 63792545)  ****
> Purify: Searching for all memory leaks...

> ****  Purify instrumented ./python (pid 63792545)  ****
> SIG: Signal handled:
>   * This is occurring while in:
>         _x_open        [open.s:16]
>         _exit          [syscalls.c:5478]
>         exit_certain   [fork.c:202]
>         _SGIPT_libc_exit [fork.c:253]
>         ptctl          [libcthread.c:149]
>         __exit         [cuexit.c:60]
>   * Received signal 48 (SIGReserved48 - System reserved signal 48)
>   * Handler function: 
>         sched_handler  [vp.c:243]
>   * Signal mask: (SIGReserved48) 
>   * Pending signals: 
> Memory leaked: 0 bytes (0%); potentially leaked: 2048 bytes (1.12%)

> PLK: 2048 bytes potentially leaked at 0x1010c558
>   * This memory was allocated from:
>         _malloc        [malloc.c:886]
>         vp_alloc       [vp.c:1214]

> Purify Heap Analysis (combining suppressed and unsuppressed blocks)
>                          Blocks      Bytes
>               Leaked          0          0
>   Potentially Leaked          1       2048
>               In-Use          4     180236
>   ----------------------------------------
>      Total Allocated          5     182284

> ****  Purify instrumented ./python (pid 63792545)  ****
>   * Program exited with status code -1.
>   * 1 access error, 1 total occurrence.
>   * 0 bytes leaked.
>   * 2048 bytes potentially leaked.
>   * Basic memory usage (including Purify overhead):
>      2179072 code
>       169108 data/bss
>       195436 heap (peak use)
>         4960 stack
>   * Shared library memory usage (including Purify overhead):
>       425984 rtlib_n32.so (shared code)
>        57812 rtlib_n32.so (private data)
>        16384 libpurify_stubs_n32.so.pure (shared code)
>          160 libpurify_stubs_n32.so.pure (private data)
>       212992 libpthread.so.pure.1b7a5a8a8 (shared code)
>         3680 libpthread.so.pure.1b7a5a8a8 (private data)
>       475136 libm.so.pure.18462ee2e (shared code)
>        95696 libm.so.pure.18462ee2e (private data)
>      2883584 libc.so.1.pure.9f4e4221 (shared code)
>        70640 libc.so.1.pure.9f4e4221 (private data)
>   * Memory mapped usage:
>        49152 mmap'd at 0x4888000
>      1425408 mmap'd at 0x48c8000
>       262144 mmap'd at 0x4714000
>        49152 mmap'd at 0x4020000
>      4259840 mmap'd at 0x42f4000
>        20480 mmap'd at 0x48b0000

> -- 
> ------------------------------------------------------
> Ralph Heinkel
> European Molecular Biology Laboratory (EMBL)
> Meyerhofstr. 1
> 69012 Heidelberg
> Tel. +49 6221/387 529
> eMail: heinkel at embl-heidelberg.de

-- 
------------------------------------------------------
Ralph Heinkel
European Molecular Biology Laboratory (EMBL)
Meyerhofstr. 1
69012 Heidelberg
Tel. +49 6221/387 529
eMail: heinkel at embl-heidelberg.de



More information about the Python-list mailing list