wrote:
> Hi all,
>
> I am using the perl debugger under Emacs, and for a long time I have
> wondered if
> there is a way to do trigger more than one statement at the same line.
>
> For example:
>
> Let's say I have a breakpoint at a place in my code, and at some point
> I want to do a:
>
> DB<2> c
>
> and after that I want to print the contents of something, like:
>
> DB<2> x @foo
>
> and I want to do this all over again, and again.
>
> Is there a way to do that in one line?
>
> Something like:
>
> DB<2> c ; x @foo
>
> At some point, then I will be able to do something like:
>
> DB<2> c ; x @foo; c ; x @foo2; c x @foo3 ; c; x @foo4; n; x @bar; n; n;
> x @bar2
Don't think you can make it this way. but if you want to get something
like "disp" in "gdb", you may want to use action 'a' or sometimes
watchpoint 'w'. for example, you set a break point at line-32.
DB<2> b 32
DB<3> a 32 print map "$_\n" @foo;
then every time your code runs pass this line-32, @foo will be printed
out automatically..you can set and unset multiple actions at the same
break point, but you can not use the debug-command 'x' to dump the
results, so it's not good for some complex data structures. a
workaround is:
perl -MData:

umper -d yourcode.pl
(dont know how you can do it in emacs though), and then
DB<3> a 32 print Dumper \@foo;
Another way I know is you can set a debug-command to be executed after
every "n", "s", "c", "r"......commands by the following way:
DB<2> { x \@foo
then every time after you type "n", "s", "c"...... you will get the
results of @foo.. But I guess this is not what you wanted.
XC