I already pointed out, how easy you can upset the IDE-to-gdb
interface, if you issue the wrong command.
You said that, but I have never seen it happen.
Althought gdb crashes sometime randomly, even without running own commands.
And running arbitrary commands is not special, there are other things
that upset gdb, just as well.
function TEST: integer;
begin
while true do ;
end;
Evaluate TEST() and the debugging is broken, until you call "reset
debugger".
And that might happen with all evaluations, just as likely as if you run
direct commands.
I recompile very frequently, and it never wet.
I always recompile from the Tools menu
I use "svn update; make clean all"
* Lazarus will never have direct support for all possible gdb
commands. If you have added them all, there will be new ones in gdb
And that is the problem.
And allowing direct commands is the solution.
Just to dump the text output of gdb, it doesn't need to know the command
yep hit "c" instead of "x" (on most keyboards they are next to each
other)
continue, step, next, stepi, nexti, stop, kill, quit
Those might not be all commands that are dangerous, but I doubt a novice
will know the names of another ones.
And Lazarus can check for them and their abbreviations and call the
corresponding interface function.
And Apple supplies are broken gdb. Some of those commands can do harm.
That's Apple's problem
Feel free to provide it as an installable package.
Can a plugin even send commands to the debugger, if that define is not set?
And then you have the package, a new Lazarus version appears, and it
doesn't work anymore...
Though one question:
I can see how you can (technically) change this while the debugger is
running.
But isn't that to late. If your app crashes without that, and you
already started the debugger. Then would it not crash?
If the first breakpoint is hit, all threads are stopped anyways.
Only single stepping causes a problem
Anyway if we have a list of such options, then they can be added as
feature request.
They could.
But why maintain another list of options, if gdb already knows its options
On 06/01/12 19:40, Martin wrote:
On 01/06/2012 18:30, Benito van der Zander wrote:
Hi,
Have you tried to compile the IDE with DBG_WITH_DEBUGGER_DEBUG
defined?
It does exactly the above. It has been there a very long time.
It has also been decided, that this feature will only be available
via this define.
I think it would be much better, if it were a regular feature like in
Ludo's patch:
* the define is difficult to find
That is because it is not supposed to be used.
Yes for the experienced users there are sometimes cases that would
make it desire-able. For the novice it would be in the best case
something they do not use. But it could easily cause them problems.
I already pointed out, how easy you can upset the IDE-to-gdb
interface, if you issue the wrong command.
* if you recompile Lazarus frequently, it often disappears.
I recompile very frequently, and it never wet.
I always recompile from the Tools menu
* if you have a Lazarus without define, you can't enable it without
recompiling and stopping the debugged application
* Lazarus will never have direct support for all possible gdb
commands. If you have added them all, there will be new ones in gdb
And that is the problem.
This also means that if gdb access is possible, then it is impossible
(even if attempted) for the IDE to monitor all the commands.
Given that some commands have hidden features...
If added people will accidentally type the wrong command.
* The output in the debug window is difficult to read
Yes.
That window shouldn't even exist. Or move to IDE internals
It is only useful, so people can sent the centent, if something went
wrong
* Most commands people use won't break the debugging session, like
info, x, ...
yep hit "c" instead of "x" (on most keyboards they are next to each
other)
And Apple supplies are broken gdb. Some of those commands can do harm.
(and I just debugged an application that crashes if debugged and
"set scheduler-locking on" is not set, with such a patch this
option could be set, without restarting gdb)
* If debug commands were that dangerous, Lazarus could show a
warning, when the feature is used the first time.
* You can write your own gdb python plugins and call them
* People using a programming language are not stupid and can figure
out how to use gdb
Feel free to provide it as an installable package.
Then it can be downloaded and installed
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus