in reply to Re: dprofpp -g doesn't work for me
in thread dprofpp -g doesn't work for me

Thanks for the input.

Okay, so the thing isn't completely hosed for everyone. Can you do me a favor and look at (grep) the tmon.out file that was used to produce your example output and see if there were any lines that are an asterisk followed by a hexadecimal number (e.g. '* 2b'). These are the lines that are causing my setup to crash. If I change them to, e.g. "+ 2b" (for which '* 2b' appears to be a variation of some kind) the trouble goes away -- of course, I'm not sure I'm getting accurate results this way.

Update: changing all the '* xNUM' lines in the tmon.out to '+ xNUM' does still give me the correct (or at least the same) output. However you have to use the -F switch because it confuses dprofpp about exits from the relevent subroutines calls. I guess this workaround will work sufficiently for my purposes.

Replies are listed 'Best First'.
Re: Re: Re: dprofpp -g doesn't work for me
by BrowserUk (Patriarch) on Jan 07, 2004 at 22:05 UTC

    No. There were no "* xx" lines in tmon.out, so I added one and got

    C:\test>dprofpp -g Date::Manip::ParseDate Modification of non-creatable array value attempted, subscript -1 at d +:\perl\bin/dprofpp.bat line 692, <fh> line 664.

    Looking at the POD for Dprof, there is this line

    Lines starting with +, - and * mark entering and exit of subroutines by ids, and goto &subr.

    Which I interpret to mean that lines starting with * indicate a trnasfere of control using goto &subr. A curosry grep through the sources of the modules (strict, Date::Manip etc.) that are used by the test program didn't turn up any gotos.

    I think you have the source of the problem. You could try replace each occurance of "* xx" with

    + xx - xx

    which should amount to the same thing, but you would need to consult the author/maintainer for a confirmation (and fix). HTH.


    Examine what is said, not who speaks.
    "Efficiency is intelligent laziness." -David Dunham
    "Think for yourself!" - Abigail
    Hooray!

      Thanks again for the input. I swear I read that line,

      > Lines starting with +, - and * mark entering and exit of subroutines by ids, and goto &subr.

      five times and never got the fact that * == 'goto &subr'.

      The fix you suggest does not work. It just mangles the file. Just changing * to + works more or less, but requires you to use -F and the timing data for the subs that call goto are messed up. A better fix would look something like this. Change

      + yy & zz pkg subname * zz - zz

      to

      + yy - yy & zz pkg subname + zz - zz