Skip to content
2: * #%~
3: * org.overture.ide.debug
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
22: package org.overture.ide.debug.core.dbgp.commands;
24: import org.overture.ide.debug.core.dbgp.IDbgpStatus;
25: import org.overture.ide.debug.core.dbgp.exceptions.DbgpException;
27: public interface IDbgpContinuationCommands
29:         // starts or resumes the script until a new breakpoint is reached, or the
30:         // end of the script is reached.
31:         IDbgpStatus run() throws DbgpException;
33:         // steps to the next statement, if there is a function call involved it will
34:         // break on the first statement in that function
35:         IDbgpStatus stepInto() throws DbgpException;
37:         // steps to the next statement, if there is a function call on the line from
38:         // which the step_over is issued then the debugger engine will stop at the
39:         // statement after the function call in the same scope as from where the
40:         // command was issued
41:         IDbgpStatus stepOver() throws DbgpException;
43:         // steps out of the current scope and breaks on the statement after
44:         // returning from the current function. (Also called 'finish' in GDB)
45:         IDbgpStatus stepOut() throws DbgpException;
47:         // ends execution of the script immediately, the debugger engine may not
48:         // respond, though if possible should be designed to do so. The script will
49:         // be terminated right away and be followed by a disconnection of the
50:         // network connection from the IDE (and debugger engine if required in multi
51:         // request apache processes).
52:         IDbgpStatus stop() throws DbgpException;
54:         // (optional): stops interaction with the debugger engine. Once this command
55:         // is executed, the IDE will no longer be able to communicate with the
56:         // debugger engine. This does not end execution of the script as does the
57:         // stop command above, but rather detaches from debugging. Support of this
58:         // continuation command is optional, and the IDE should verify support for
59:         // it via the feature_get command. If the IDE has created
60:         // stdin/stdout/stderr pipes for execution of the script (eg. an interactive
61:         // shell or other console to catch script output), it should keep those open
62:         // and usable by the process until the process has terminated normally.
64:         // TODO: add detach handling to commands and DbgpDetachedException!!!
65:         IDbgpStatus detach() throws DbgpException;