in reply to Devel::Profiler and dprofpp Garbled profile

I've had some success with the -F option when that happens.

From the dprofpp pod

-F Force the generation of fake exit timestamps if dprofpp reports that t +he profile is garbled. This is only useful if dprofpp determines that the profile + is garbled due to missing exit timestamps. You're on your own if you do t +his. Consult the BUGS section.

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

Replies are listed 'Best First'.
Re: Re: Devel::Profiler and dprofpp Garbled profile
by jaa (Friar) on Mar 25, 2004 at 11:53 UTC

    Thanks for the help - I have more information, but not a working result yet.

    With the -F option, I get a little further, and then:

    Garbled profile, missing an enter time stamp at /usr/bin/dprofpp line 690, <fh> line 323.
    
    With the -T option, I get a trace that seems to indicate that the problem is in DBD::mysql ?
        DBD::_::common::errstr
        DBI::st::finish
        DBD::mysql::st::finish
    Database::getClientByCd
    Garbled profile, unexpected exit time stamp
    

    I have also found that the only way I can create the tmon.out is with Devel::Profiler - if I switch to

    perl -d:DProf myscript.pl
    I just get segfault, coredump. The code is all strict and zero warnings. Further, it does not do anything I would consider exotic or difficult. I did have one instance where overload was being used - this is now removed. :(

    Help?

    Jeff

      I've never used Profiler, but after a quick squint at the docs one possible way forward would be to use the bad_pkgs option to stop it from profiling everything except your main line code. If that is successful, then you could remove packages from the option until you break it again. Once you know which package(s) are causing problems, then you could try using the bad_subs option to exclude stuff in the bad package and then put them back until you break again.

      It might be a rather tedious process, but you might find that you don't need to be profiling much below your main-line code anyway.


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