DUH! I started by looking for perl5db.pl when I was running under Devel::ptkdb, forgetting that any other debugger is loaded INSTEAD of perl5db.pl, not of ON TOP OF perl5db.pl.
I had also thought that I could use the current value of $DB::single to determine if I was in the debugger; that way I could get a value for the function no matter what debugger you are running. For some reason, however, I only see its value as zero, even under -d.
Anyway, here is what I am using for now:
sub am_i_debugging {
print "$DB::single\n";
return (the_debugger_is()) ? 1 : 0;
}
sub the_debugger_is {
return '-d:ptkdb'
if(exists $INC{'Devel/ptkdb.pm'});
return '-d'
if(exists $INC{'perl5db.pl'});
return '';
}
print( join("\n",
am_i_debugging(),
the_debugger_is(),
''));
|