Redefining built-in commands.

Don Howard
Wed Jun 5 14:39:00 GMT 2002

On Fri, 31 May 2002, Eli Zaretskii wrote:

> > Date: Thu, 30 May 2002 17:24:05 -0700 (PDT)
> > From: Don Howard <>
> > 
> > Should gdb allow users to redefine built-in commands?
> I think it should, unless we cannot do it safely.
> > If so, should the 
> > orignial alias continue to behave like the original built-in, or should 
> > it's behavior be modified also?
> I'm not 100% sure, but I tend to think the aliases that are mere
> abbreviations, like `n' for `next', should be redefined to the new
> command, while aliases which aren't abbreviations should be left to
> point to the original command.
> But if the above cannot be done, we should either redefine the aliases
> to the new command, or disable the aliases entirely.  Crashing is not
> an option, obviously.

Ignoring the alias issue, I don't see any benefit to being able to
redefine built-in commands.

When a built-in command is redefined, it's original functionality is lost
for the remainder of that debugging session.  For example, say the user
redefines the 'step' command -- there is no longer a way to do
source-level stepping.  

(gdb) define step
> do something special
> step
> end

The above example ends up "doing something special" until gdb hits it's
recursion limit, rather than doing something special and then stepping.  
The example *does* work just fine if the user picks anything other than a
built-in name:

(gdb) define special_step
> do something special
> step
> end

I think the ability to redefine built-in commands is a misfeature.

Users can always choose an alternate name for their custom commands.

gdb engineering

More information about the Gdb mailing list