Subject: | Devel-NYTProf-3.01_94 under Windows XP |
Date: | Thu, 25 Feb 2010 18:01:59 +0100 |
To: | "Tim.Bunce [...] pobox.com" <Tim.Bunce [...] pobox.com> |
From: | "Eissfeldt, Heiko" <Tim.Bunce [...] pobox.com> |
Hello Tim,
I am just doing bug hunting for Devel-NYTProf-3.01_94<http://search.cpan.org/~timb/Devel-NYTProf-3.01_94/>
under Windows XP with ActiveState Perl 5.8.4 and want to tell you my finds.
Symptom:
'make tests' first dies at t/10-run.t and very often in later tests.
This is the call stack at that point:
msvcr71.dll!_lock_file(void * pf=0x77c5fce0) Line 236 C
msvcr71.dll!fgets(char * string=0x01ce8a24, int count=2048, _iobuf * str=0x77c5fce0) Line 69 + 0x6 C
NYTProf.dll!NYTP_gets(NYTP_file_t * ifile=0x01ce5b9c, char * * buffer_p=0x0140fd28, unsigned int * len_p=0x0140fc7c) Line 369 + 0xf C
Show quoted text
> NYTProf.dll!load_profile_data_from_stream(sv * cb=0x01ce5b9c) Line 3635 + 0x13 C
NYTProf.dll!XS_Devel__NYTProf__Data_load_profile_data_from_file(interpreter * my_perl=0x00236004, cv * cv=0x01bce6f8) Line 4584 C
perl58.dll!28040f9f()
The problem seems to be this:
load_profile_data_from_stream() uses the 'in' filepointer, which is somehow corrupted.
That is
'in' points to a structure NYTP_file_t containing the
'file' pointer pointing to a structure _iobuf which has only NULL pointers
- in 0x01ce5b9c {file=0x77c5fce0 NYTP_file_t *
- file 0x77c5fce0 _iobuf *
+ _ptr 0x00000000 <bad Ptr> char *
_cnt 0 int
+ _base 0x00000000 <bad Ptr> char *
_flag 1 int
_file 3 int
_charbuf 0 int
_bufsiz 0 int
+ _tmpfname 0x00000000 <bad Ptr> char *
so when NYTP_gets() is called, it crashes.
'in' is set from the return value of NYTP_open().
I have not the faintest idea why such a buggy structure is given back...
The file nytprof_10-run.out has this content:
NYTProf 3 0
# Perl profile database. Generated by Devel::NYTProf on Thu Feb 25 16:47:11 2010
:basetime=1267112831
:xs_version=3.02
:perl_version=5.8.4
:clock_id=-1
:ticks_per_sec=1000000
:nv_size=8
:PL_perldb=784
:application=-
P'ð G÷ߦáÒAp'ð.Gá¦áÒA
Hope that helps,
Heiko
Message body not shown because it is not plain text.