Finally I got the B Debugger working as I wanted it to work.
Od - Debug a Perl Compiler backend
perl -d -MOd=Backend[,OPTIONS] foo.pl
$ perl -d -MOd=C foo.pl
Od::CODE(0x154c5a0)((eval 9)[lib/Od.pm:33]:25):
25: &$compilesub();
DB 1 s
B::C::CODE(0x12c0aa0)(lib/B/C.pm:3163):
3163: return sub { save_main() };
DB 1 s
B::C::save_main(lib/B/C.pm:2881):
2881: my $warner = $SIG{__WARN__};
This module is a debugging replacement to O, the Perl Compiler frontend.
It delays the start of the B compiler compile function from the CHECK block
to the INIT block, so that the debugger can be started there.