On 02/09/2014 12:11, Joost van der Sluis wrote:
Hi all,
On Linux there's the option to view a window with the console-output
of applications being debugged.
This option is enabled with the define DBG_ENABLE_TERMINAL in three
units.
In debugger/debugger.pp the define is set for linux only, with the
result that the window is actually visible in the menu.
In components/lazdebuggergdbmi/gdbmimiscclasses.pp and
components/lazdebuggergdbmi/gdbmimiscclasses.pp the define is also set
on linux, so that this debugger actually sends the console output to
the screen.
Now I have my own debugger, and this debugger also supports the
console-window on OS/X. So I could adapt the define in debugger.pp for
OS/X, but then the menu-item also appears when a gdb-based debugger is
used, which do not support this option on OS/X.
So, question: what would be the correct way to display this
menu-option, based onto the selected debugger. (Add a property to
TDebuggerIntf, but after that?)
Add a class[1] method to the debugger-class. return true/false,
depending on the availability of the feature.
The base class, would have the current ifdef. All other code depends on
the value of the method.
In ide/DebugManager the debugger class is selected and setup. That would
be the place to update the menu (maybe enable/disable instead of hiding).
[1] If it is a class method debug manager may be able to decide on the
class. If the code in debug manager allows to wait for the instance,
then it can be a normal method.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus