From: Paul C. <pac...@gm...> - 2007-08-10 11:22:39
|
On 8/10/07, Wolfgang Jansen <wj...@so...> wrote: > Paul Cohen wrote: > > Ok. Couldn't batch mode (and reading commands from a file/stdin) > > execution be implemented with not to much effort? > > > The debugger is CLI-based. Thus, interactive mode and batch mode > by reading commands from stdin (and then from an arbitrary file) > is not very different. The necessary changes/additions include > - suppressing command prompts > - redirecting debugger output to a file > - stop after command error > There is no problem to make the changes/additions. > > But is batch mode really of interest? To my experience, > debugging will be done if the program does not what was expected, > i.e. if there is a somewhat surprising outcome. > Interactive mode is needed to react to unexpected behavior. Debugging Eiffel wrappings of C code or problems with using C API:s can be quite tricky at times. I have had cases where it would have been nice to be able to quickly rerun a debugging session to see if I get the same behaviour or not, without having to add debug trace statements to the program. But you are right that having a CLI allows you to give the debugger commands from stdin. Which is one of the many benefits of having a CLI-based debugger! > > > >> - 3.1 to 3.14, 3.17, 3.18, 3.21,3.22 are available; > >> - 3.15, 3.16 are not hard to implement. Whether > >> to implement 3.19, 3.20 is a question of philosophy. > >> > > > > I don't quite understand what you mean by philosophy. Are you saying > > that editing program data during debugging can be seen as violating > > some debugging principle or? I see them rather as power debugging > > features. > > > Yes, philosophy means here that some people do not like to change > program data during debugging. Ok. I think I'm more pragmatic in this case. > A viable approach in case of Eiffel > may be as follows: changing an attribute value is allowed if the class > of the enclosing object has been compiled with invariant checking on > and if the invariant is still satisfied after the change. Yes. That seems reasonable. > There will be no restriction to change local variables. > But what about routine arguments? The program must not change them, > will the debugger be allowed to do so? (This is a secondary problem > and may be discussed later.) > Ok. Obviously there are some issues that need to be resolved/decided regarding the requirements on data editing. That is to say, if data editing commands are to be added to the debugger at all. That is the reason I listed those requirements as lower priority for now. > I hope that you didn't misunderstand the role that the debugger > plays in SE: it is not part of the official SE distribution. > I made the offer to SE1.2 developers to add it to this > compiler version, but I didn't get any answer so far. I see. As I said before, I would welcome your debugger contribution to Gobo very much! /Paul |