VirtualBox

source: vbox/trunk/include/VBox/dbggui.h@ 64879

Last change on this file since 64879 was 62476, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.8 KB
Line 
1/** @file
2 * DBGGUI - The VirtualBox Debugger GUI. (VBoxDbg)
3 */
4
5/*
6 * Copyright (C) 2006-2016 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_dbggui_h
27#define ___VBox_dbggui_h
28
29#include <VBox/types.h>
30
31
32RT_C_DECLS_BEGIN
33
34/** @defgroup grp_dbggui VirtualBox Debugger GUI
35 * @ingroup grp_dbg
36 * @{
37 */
38
39#ifdef RT_OS_WINDOWS
40struct ISession;
41#else
42class ISession;
43#endif
44
45/** Pointer to the debugger GUI instance structure. */
46typedef struct DBGGUI *PDBGGUI;
47
48/** Virtual method table for the debugger GUI. */
49typedef struct DBGGUIVT
50{
51 /** The version. (DBGGUIVT_VERSION) */
52 uint32_t u32Version;
53 /** @copydoc DBGGuiDestroy */
54 DECLCALLBACKMEMBER(int, pfnDestroy)(PDBGGUI pGui);
55 /** @copydoc DBGGuiAdjustRelativePos */
56 DECLCALLBACKMEMBER(void, pfnAdjustRelativePos)(PDBGGUI pGui, int x, int y, unsigned cx, unsigned cy);
57 /** @copydoc DBGGuiShowStatistics */
58 DECLCALLBACKMEMBER(int, pfnShowStatistics)(PDBGGUI pGui);
59 /** @copydoc DBGGuiShowCommandLine */
60 DECLCALLBACKMEMBER(int, pfnShowCommandLine)(PDBGGUI pGui);
61 /** @copydoc DBGGuiSetParent */
62 DECLCALLBACKMEMBER(void, pfnSetParent)(PDBGGUI pGui, void *pvParent);
63 /** @copydoc DBGGuiSetMenu */
64 DECLCALLBACKMEMBER(void, pfnSetMenu)(PDBGGUI pGui, void *pvMenu);
65 /** The end version. (DBGGUIVT_VERSION) */
66 uint32_t u32EndVersion;
67} DBGGUIVT;
68/** Pointer to the virtual method table for the debugger GUI. */
69typedef DBGGUIVT const *PCDBGGUIVT;
70/** The u32Version value.
71 * The first byte is the minor version, the 2nd byte is major version number.
72 * The high 16-bit word is a magic. */
73#define DBGGUIVT_VERSION UINT32_C(0xbead0100)
74/** Macro for determining whether two versions are compatible or not.
75 * @returns boolean result.
76 * @param uVer1 The first version number.
77 * @param uVer2 The second version number.
78 */
79#define DBGGUIVT_ARE_VERSIONS_COMPATIBLE(uVer1, uVer2) \
80 ( ((uVer1) & UINT32_C(0xffffff00)) == ((uVer2) & UINT32_C(0xffffff00)) )
81
82
83/**
84 * Creates the debugger GUI.
85 *
86 * @returns VBox status code.
87 * @param pSession The VirtualBox session.
88 * @param ppGui Where to store the pointer to the debugger instance.
89 * @param ppGuiVT Where to store the virtual method table pointer.
90 * Optional.
91 */
92DBGDECL(int) DBGGuiCreate(ISession *pSession, PDBGGUI *ppGui, PCDBGGUIVT *ppGuiVT);
93/** @copydoc DBGGuiCreate */
94typedef DECLCALLBACK(int) FNDBGGUICREATE(ISession *pSession, PDBGGUI *ppGui, PCDBGGUIVT *ppGuiVT);
95/** Pointer to DBGGuiCreate. */
96typedef FNDBGGUICREATE *PFNDBGGUICREATE;
97
98/**
99 * Creates the debugger GUI given a VM handle.
100 *
101 * @returns VBox status code.
102 * @param pUVM The VM handle.
103 * @param ppGui Where to store the pointer to the debugger instance.
104 * @param ppGuiVT Where to store the virtual method table pointer.
105 * Optional.
106 */
107DBGDECL(int) DBGGuiCreateForVM(PUVM pUVM, PDBGGUI *ppGui, PCDBGGUIVT *ppGuiVT);
108/** @copydoc DBGGuiCreateForVM */
109typedef DECLCALLBACK(int) FNDBGGUICREATEFORVM(PUVM pUVM, PDBGGUI *ppGui, PCDBGGUIVT *ppGuiVT);
110/** Pointer to DBGGuiCreateForVM. */
111typedef FNDBGGUICREATEFORVM *PFNDBGGUICREATEFORVM;
112
113/**
114 * Destroys the debugger GUI.
115 *
116 * @returns VBox status code.
117 * @param pGui The instance returned by DBGGuiCreate().
118 */
119DBGDECL(int) DBGGuiDestroy(PDBGGUI pGui);
120
121/**
122 * Notifies the debugger GUI that the console window (or whatever) has changed
123 * size or position.
124 *
125 * @param pGui The instance returned by DBGGuiCreate().
126 * @param x The x-coordinate of the window the debugger is relative to.
127 * @param y The y-coordinate of the window the debugger is relative to.
128 * @param cx The width of the window the debugger is relative to.
129 * @param cy The height of the window the debugger is relative to.
130 */
131DBGDECL(void) DBGGuiAdjustRelativePos(PDBGGUI pGui, int x, int y, unsigned cx, unsigned cy);
132
133/**
134 * Shows the default statistics window.
135 *
136 * @returns VBox status code.
137 * @param pGui The instance returned by DBGGuiCreate().
138 */
139DBGDECL(int) DBGGuiShowStatistics(PDBGGUI pGui);
140
141/**
142 * Shows the default command line window.
143 *
144 * @returns VBox status code.
145 * @param pGui The instance returned by DBGGuiCreate().
146 */
147DBGDECL(int) DBGGuiShowCommandLine(PDBGGUI pGui);
148
149/**
150 * Sets the parent windows.
151 *
152 * @param pGui The instance returned by DBGGuiCreate().
153 * @param pvParent Pointer to a QWidget object.
154 *
155 * @remarks This will no affect any existing windows, so call it right after
156 * creating the thing.
157 */
158DBGDECL(void) DBGGuiSetParent(PDBGGUI pGui, void *pvParent);
159
160/**
161 * Sets the debug menu object.
162 *
163 * @param pGui The instance returned by DBGGuiCreate().
164 * @param pvMenu Pointer to a QMenu object.
165 *
166 * @remarks Call right after creation or risk losing menu item.
167 */
168DBGDECL(void) DBGGuiSetMenu(PDBGGUI pGui, void *pvMenu);
169
170/** @} */
171
172RT_C_DECLS_END
173
174#endif
175
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette