Previous 199869 Revisions Next

r23501 Thursday 6th June, 2013 at 17:58:16 UTC by Andrew Gardner
QT Debugger: WIP for a new breakpoints window. [Andrew Gardner]

--out of whatsnew.txt--
You can't click to enable/disable breakpoints yet, and the number of rows
doesn't resize yet, but that stuff will come.
[src/emu]emu.mak
[src/emu/debug]debugcmd.c debugvw.c debugvw.h dvbpoints.c* dvbpoints.h*
[src/osd/sdl]debugqt.c debugqtbreakpointswindow.c* debugqtbreakpointswindow.h* debugqtwindow.c debugqtwindow.h sdl.mak

trunk/src/osd/sdl/debugqtbreakpointswindow.c
r0r23501
1#define NO_MEM_TRACKING
2
3#include "debugqtbreakpointswindow.h"
4
5#include "debug/debugcon.h"
6#include "debug/debugcpu.h"
7#include "debug/dvdisasm.h"
8
9
10BreakpointsWindow::BreakpointsWindow(running_machine* machine, QWidget* parent) :
11   WindowQt(machine, NULL)
12{
13   setWindowTitle("Debug: Machine Breakpoints");
14
15   if (parent != NULL)
16   {
17      QPoint parentPos = parent->pos();
18      setGeometry(parentPos.x()+100, parentPos.y()+100, 800, 400);
19   }
20
21   //
22   // The main frame and its input and breakpoints widgets
23   //
24   QFrame* mainWindowFrame = new QFrame(this);
25
26   // The main breakpoints view
27   m_breakpointsView = new DebuggerView(DVT_BREAK_POINTS, m_machine, this);
28
29   // Layout
30   QVBoxLayout* vLayout = new QVBoxLayout(mainWindowFrame);
31   vLayout->setSpacing(3);
32   vLayout->setContentsMargins(2,2,2,2);
33   vLayout->addWidget(m_breakpointsView);
34
35   setCentralWidget(mainWindowFrame);
36}
37
38
39BreakpointsWindow::~BreakpointsWindow()
40{
41}
42
43
44//=========================================================================
45//  BreakpointsWindowQtConfig
46//=========================================================================
47void BreakpointsWindowQtConfig::buildFromQWidget(QWidget* widget)
48{
49   WindowQtConfig::buildFromQWidget(widget);
50}
51
52
53void BreakpointsWindowQtConfig::applyToQWidget(QWidget* widget)
54{
55   WindowQtConfig::applyToQWidget(widget);
56}
57
58
59void BreakpointsWindowQtConfig::addToXmlDataNode(xml_data_node* node) const
60{
61   WindowQtConfig::addToXmlDataNode(node);
62}
63
64
65void BreakpointsWindowQtConfig::recoverFromXmlNode(xml_data_node* node)
66{
67   WindowQtConfig::recoverFromXmlNode(node);
68}
Property changes on: trunk/src/osd/sdl/debugqtbreakpointswindow.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/osd/sdl/debugqtbreakpointswindow.h
r0r23501
1#ifndef __DEBUG_QT_BREAK_POINTS_WINDOW_H__
2#define __DEBUG_QT_BREAK_POINTS_WINDOW_H__
3
4#include <QtGui/QtGui>
5
6#include "debugqtview.h"
7#include "debugqtwindow.h"
8
9
10//============================================================
11//  The Breakpoints Window.
12//============================================================
13class BreakpointsWindow : public WindowQt
14{
15   Q_OBJECT
16
17public:
18   BreakpointsWindow(running_machine* machine, QWidget* parent=NULL);
19   virtual ~BreakpointsWindow();
20
21
22private:
23   // Widgets
24   DebuggerView* m_breakpointsView;
25};
26
27
28//=========================================================================
29//  A way to store the configuration of a window long enough to read/write.
30//=========================================================================
31class BreakpointsWindowQtConfig : public WindowQtConfig
32{
33public:
34   BreakpointsWindowQtConfig() :
35      WindowQtConfig(WIN_TYPE_BREAK_POINTS)
36   {
37   }
38
39   ~BreakpointsWindowQtConfig() {}
40
41   void buildFromQWidget(QWidget* widget);
42   void applyToQWidget(QWidget* widget);
43   void addToXmlDataNode(xml_data_node* node) const;
44   void recoverFromXmlNode(xml_data_node* node);
45};
46
47
48#endif
Property changes on: trunk/src/osd/sdl/debugqtbreakpointswindow.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/osd/sdl/sdl.mak
r23500r23501
644644   $(SDLOBJ)/debugqtdasmwindow.o \
645645   $(SDLOBJ)/debugqtmainwindow.o \
646646   $(SDLOBJ)/debugqtmemorywindow.o \
647   $(SDLOBJ)/debugqtbreakpointswindow.o \
647648   $(SDLOBJ)/debugqtview.moc.o \
648649   $(SDLOBJ)/debugqtwindow.moc.o \
649650   $(SDLOBJ)/debugqtlogwindow.moc.o \
650651   $(SDLOBJ)/debugqtdasmwindow.moc.o \
651652   $(SDLOBJ)/debugqtmainwindow.moc.o \
652   $(SDLOBJ)/debugqtmemorywindow.moc.o
653   $(SDLOBJ)/debugqtmemorywindow.moc.o \
654   $(SDLOBJ)/debugqtbreakpointswindow.moc.o
653655endif
654656
655657ifeq ($(NO_DEBUGGER),1)
trunk/src/osd/sdl/debugqt.c
r23500r23501
3333#include "debugqtmainwindow.h"
3434#include "debugqtdasmwindow.h"
3535#include "debugqtmemorywindow.h"
36#include "debugqtbreakpointswindow.h"
3637
3738
3839//============================================================
r23500r23501
7576      WindowQtConfig::WindowType type = (WindowQtConfig::WindowType)xml_get_attribute_int(wnode, "type", WindowQtConfig::WIN_TYPE_UNKNOWN);
7677      switch (type)
7778      {
78         case WindowQtConfig::WIN_TYPE_MAIN:   xmlConfigurations.push_back(new MainWindowQtConfig()); break;
79         case WindowQtConfig::WIN_TYPE_MEMORY: xmlConfigurations.push_back(new MemoryWindowQtConfig()); break;
80         case WindowQtConfig::WIN_TYPE_DASM:   xmlConfigurations.push_back(new DasmWindowQtConfig()); break;
81         case WindowQtConfig::WIN_TYPE_LOG:    xmlConfigurations.push_back(new LogWindowQtConfig()); break;
79         case WindowQtConfig::WIN_TYPE_MAIN:         xmlConfigurations.push_back(new MainWindowQtConfig()); break;
80         case WindowQtConfig::WIN_TYPE_MEMORY:       xmlConfigurations.push_back(new MemoryWindowQtConfig()); break;
81         case WindowQtConfig::WIN_TYPE_DASM:         xmlConfigurations.push_back(new DasmWindowQtConfig()); break;
82         case WindowQtConfig::WIN_TYPE_LOG:           xmlConfigurations.push_back(new LogWindowQtConfig()); break;
83         case WindowQtConfig::WIN_TYPE_BREAK_POINTS: xmlConfigurations.push_back(new BreakpointsWindowQtConfig()); break;
8284         default: continue;
8385      }
8486      xmlConfigurations.back()->recoverFromXmlNode(wnode);
r23500r23501
132134         xmlConfigurations.push_back(new DasmWindowQtConfig());
133135      else if (dynamic_cast<LogWindow*>(widget))
134136         xmlConfigurations.push_back(new LogWindowQtConfig());
137      else if (dynamic_cast<BreakpointsWindow*>(widget))
138         xmlConfigurations.push_back(new BreakpointsWindowQtConfig());
135139
136140      xmlConfigurations.back()->buildFromQWidget(widget);
137141   }
r23500r23501
172176            foo = new DasmWindow(&machine); break;
173177         case WindowQtConfig::WIN_TYPE_LOG:
174178            foo = new LogWindow(&machine); break;
179         case WindowQtConfig::WIN_TYPE_BREAK_POINTS:
180            foo = new BreakpointsWindow(&machine); break;
175181         default: break;
176182      }
177183      config->applyToQWidget(foo);
trunk/src/osd/sdl/debugqtwindow.c
r23500r23501
44#include "debugqtlogwindow.h"
55#include "debugqtdasmwindow.h"
66#include "debugqtmemorywindow.h"
7#include "debugqtbreakpointswindow.h"
78
89bool WindowQt::s_refreshAll = false;
910bool WindowQt::s_hideAll = false;
r23500r23501
3334   debugActOpenLog->setShortcut(QKeySequence("Ctrl+L"));
3435   connect(debugActOpenLog, SIGNAL(triggered()), this, SLOT(debugActOpenLog()));
3536
37   QAction* debugActOpenPoints = new QAction("New &Breakpoints Window", this);
38   debugActOpenPoints->setShortcut(QKeySequence("Ctrl+B"));
39   connect(debugActOpenPoints, SIGNAL(triggered()), this, SLOT(debugActOpenPoints()));
40
3641   QAction* dbgActRun = new QAction("Run", this);
3742   dbgActRun->setShortcut(Qt::Key_F5);
3843   connect(dbgActRun, SIGNAL(triggered()), this, SLOT(debugActRun()));
r23500r23501
8691   debugMenu->addAction(debugActOpenMemory);
8792   debugMenu->addAction(debugActOpenDasm);
8893   debugMenu->addAction(debugActOpenLog);
94   debugMenu->addAction(debugActOpenPoints);
8995   debugMenu->addSeparator();
9096   debugMenu->addAction(dbgActRun);
9197   debugMenu->addAction(dbgActRunAndHide);
r23500r23501
139145}
140146
141147
148void WindowQt::debugActOpenPoints()
149{
150   BreakpointsWindow* foo = new BreakpointsWindow(m_machine, this);
151   // A valiant effort, but it just doesn't wanna' hide behind the main window & not make a new toolbar icon
152   // foo->setWindowFlags(Qt::Dialog);
153   // foo->setWindowFlags(foo->windowFlags() & ~Qt::WindowStaysOnTopHint);
154   foo->show();
155}
156
157
142158void WindowQt::debugActRun()
143159{
144160   debug_cpu_get_visible_cpu(*m_machine)->debug()->go();
trunk/src/osd/sdl/debugqtwindow.h
r23500r23501
3333   void debugActOpenMemory();
3434   void debugActOpenDasm();
3535   void debugActOpenLog();
36   void debugActOpenPoints();
3637   void debugActRun();
3738   void debugActRunAndHide();
3839   void debugActRunToNextCpu();
r23500r23501
6364public:
6465   enum WindowType
6566   {
66      WIN_TYPE_MAIN       = 0x01,
67      WIN_TYPE_MEMORY     = 0x02,
68      WIN_TYPE_DASM       = 0x04,
69      WIN_TYPE_LOG        = 0x08,
70      WIN_TYPE_UNKNOWN    = 0x10,
67      WIN_TYPE_MAIN         = 0x01,
68      WIN_TYPE_MEMORY       = 0x02,
69      WIN_TYPE_DASM         = 0x04,
70      WIN_TYPE_LOG          = 0x08,
71      WIN_TYPE_BREAK_POINTS = 0x10,
72      WIN_TYPE_UNKNOWN      = 0x20,
7173   };
7274
7375public:
7476   WindowQtConfig(const WindowType& type=WIN_TYPE_UNKNOWN) :
7577      m_type(type),
7678      m_size(800, 600),
77      m_position(120, 120),
78      m_next(NULL)
79      m_position(120, 120)
7980   {}
8081   virtual ~WindowQtConfig() {}
8182
r23500r23501
8485   QPoint m_size;
8586   QPoint m_position;
8687
87   // Dues for becoming a member of a simple_list
88   WindowQtConfig* m_next;
89   WindowQtConfig* next() const { return m_next; }
90
91
9288   virtual void buildFromQWidget(QWidget* widget);
9389   virtual void applyToQWidget(QWidget* widget);
9490   virtual void addToXmlDataNode(xml_data_node* node) const;
trunk/src/emu/emu.mak
r23500r23501
120120   $(EMUOBJ)/debug/debugvw.o \
121121   $(EMUOBJ)/debug/dvdisasm.o \
122122   $(EMUOBJ)/debug/dvmemory.o \
123   $(EMUOBJ)/debug/dvbpoints.o \
123124   $(EMUOBJ)/debug/dvstate.o \
124125   $(EMUOBJ)/debug/dvtext.o \
125126   $(EMUOBJ)/debug/express.o \
trunk/src/emu/debug/debugvw.h
r23500r23501
5757   DVT_MEMORY,
5858   DVT_LOG,
5959   DVT_TIMERS,
60   DVT_ALLOCS
60   DVT_ALLOCS,
61   DVT_BREAK_POINTS
6162};
6263
6364
trunk/src/emu/debug/dvbpoints.c
r0r23501
1/*********************************************************************
2
3    dvpoints.c
4
5   Breakpoint debugger view.
6
7****************************************************************************
8
9    Copyright Aaron Giles
10    All rights reserved.
11
12    Redistribution and use in source and binary forms, with or without
13    modification, are permitted provided that the following conditions are
14    met:
15
16        * Redistributions of source code must retain the above copyright
17          notice, this list of conditions and the following disclaimer.
18        * Redistributions in binary form must reproduce the above copyright
19          notice, this list of conditions and the following disclaimer in
20          the documentation and/or other materials provided with the
21          distribution.
22        * Neither the name 'MAME' nor the names of its contributors may be
23          used to endorse or promote products derived from this software
24          without specific prior written permission.
25
26    THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
27    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29    DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
30    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
34    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
35    IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36    POSSIBILITY OF SUCH DAMAGE.
37
38***************************************************************************/
39
40#include "emu.h"
41#include "debugvw.h"
42#include "dvbpoints.h"
43#include "debugcpu.h"
44
45
46
47//**************************************************************************
48//  DEBUG VIEW BREAK POINTS
49//**************************************************************************
50
51//-------------------------------------------------
52//  debug_view_breakpoints - constructor
53//-------------------------------------------------
54
55debug_view_breakpoints::debug_view_breakpoints(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate)
56   : debug_view(machine, DVT_BREAK_POINTS, osdupdate, osdprivate)
57{
58   // fail if no available sources
59   enumerate_sources();
60   if (m_source_list.count() == 0)
61      throw std::bad_alloc();
62
63   // configure the view
64   m_total.y = 50;             // TODO
65   m_supports_cursor = true;
66}
67
68
69//-------------------------------------------------
70//  ~debug_view_breakpoints - destructor
71//-------------------------------------------------
72
73debug_view_breakpoints::~debug_view_breakpoints()
74{
75}
76
77
78//-------------------------------------------------
79//  enumerate_sources - enumerate all possible
80//  sources for a disassembly view
81//-------------------------------------------------
82
83void debug_view_breakpoints::enumerate_sources()
84{
85   // start with an empty list
86   m_source_list.reset();
87
88   // iterate over devices with disassembly interfaces
89   disasm_interface_iterator iter(machine().root_device());
90   for (device_disasm_interface *dasm = iter.first(); dasm != NULL; dasm = iter.next())
91   {
92      astring name;
93      name.printf("%s '%s'", dasm->device().name(), dasm->device().tag());
94      m_source_list.append(*auto_alloc(machine(), debug_view_source(name.cstr(), &dasm->device())));
95   }
96
97   // reset the source to a known good entry
98   set_source(*m_source_list.head());
99}
100
101
102//-------------------------------------------------
103//  view_notify - handle notification of updates
104//  to cursor changes
105//-------------------------------------------------
106
107void debug_view_breakpoints::view_notify(debug_view_notification type)
108{
109}
110
111
112//-------------------------------------------------
113//  view_char - handle a character typed within
114//  the current view
115//-------------------------------------------------
116
117void debug_view_breakpoints::view_char(int chval)
118{
119}
120
121
122//-------------------------------------------------
123//  view_click - handle a mouse click within the
124//  current view
125//-------------------------------------------------
126
127void debug_view_breakpoints::view_click(const int button, const debug_view_xy& pos)
128{
129}
130
131
132void debug_view_breakpoints::pad_astring_to_length(astring& str, int len)
133{
134    int diff = len - str.len();
135    if (diff > 0)
136    {
137        astring buffer;
138        buffer.expand(diff);
139        for (int i = 0; i < diff; i++)
140            buffer.catprintf(" ");
141        str.catprintf("%s", buffer.cstr());
142    }
143}
144
145//-------------------------------------------------
146//  view_update - update the contents of the
147//  disassembly view
148//-------------------------------------------------
149
150void debug_view_breakpoints::view_update()
151{
152   const debug_view_source& source = *m_source;
153   const device_debug& debugInterface = *source.device()->debug();
154   debug_view_char *dest = m_viewdata;
155
156   // Gather a list of all the breakpoints in reverse order
157   int numBPs = 0;
158   device_debug::breakpoint** bpList = NULL;
159   if (debugInterface.breakpoint_first() != NULL)
160   {
161      // Alloc
162      for (device_debug::breakpoint *bp = debugInterface.breakpoint_first(); bp != NULL; bp = bp->next())
163         numBPs++;
164      bpList = new device_debug::breakpoint*[numBPs];
165     
166      // Collect
167      int i = 1;
168      for (device_debug::breakpoint *bp = debugInterface.breakpoint_first(); bp != NULL; bp = bp->next())
169      {
170         bpList[numBPs-i] = bp;
171         i++;
172      }
173   }
174
175   // Draw
176   for (int row = 0; row < m_visible.y; row++)
177   {
178      UINT32 effrow = m_topleft.y + row;
179     
180      // Header
181      if (effrow == 0)
182      {
183         astring header = "ID   En  Address          Condition         Action";
184         for (int i = 0; i < m_visible.x; i++)
185         {
186            dest->byte = (i < header.len()) ? header[i] : ' ';
187            dest->attrib = DCA_ANCILLARY;
188            dest++;
189         }
190         continue;
191      }
192
193      // Breakpoints
194      int bpi = effrow-1;
195      if (bpi < numBPs && bpi >= 0)
196      {
197         device_debug::breakpoint* bp = bpList[bpi];
198         
199          astring buffer;
200         buffer.printf("%x", bp->index());
201         pad_astring_to_length(buffer, 5);
202         buffer.catprintf("%c", bp->enabled() ? 'X' : 'O');
203         pad_astring_to_length(buffer, 9);
204         buffer.catprintf("%s", core_i64_hex_format(bp->address(), debugInterface.logaddrchars()));
205         pad_astring_to_length(buffer, 26);
206         if (astring(bp->condition()) != astring("1"))
207         {
208            buffer.catprintf("%s", bp->condition());
209            pad_astring_to_length(buffer, 44);
210         }
211         if (astring(bp->action()) != astring(""))
212         {
213            buffer.catprintf("%s", bp->action());
214            pad_astring_to_length(buffer, 60);
215         }
216         
217         for (int i = 0; i < m_visible.x; i++)
218         {
219            dest->byte = (i < buffer.len()) ? buffer[i] : ' ';
220            dest->attrib = DCA_NORMAL;
221            dest++;
222         }
223         continue;
224      }
225     
226      // Fill the remaining vertical space
227      for (int i = 0; i < m_visible.x; i++)
228      {
229         dest->byte = ' ';
230         dest->attrib = DCA_NORMAL;
231         dest++;
232      }
233   }
234   
235   delete bpList;
236}
Property changes on: trunk/src/emu/debug/dvbpoints.c
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/debug/debugcmd.c
r23500r23501
13351335         for (device_debug::breakpoint *bp = device->debug()->breakpoint_first(); bp != NULL; bp = bp->next())
13361336         {
13371337            buffer.printf("%c%4X @ %s", bp->enabled() ? ' ' : 'D', bp->index(), core_i64_hex_format(bp->address(), device->debug()->logaddrchars()));
1338            if (bp->condition() != NULL)
1338            if (astring(bp->condition()) != astring("1"))
13391339               buffer.catprintf(" if %s", bp->condition());
1340            if (bp->action() != NULL)
1340            if (astring(bp->action()) != astring(""))
13411341               buffer.catprintf(" do %s", bp->action());
13421342            debug_console_printf(machine, "%s\n", buffer.cstr());
13431343            printed++;
trunk/src/emu/debug/dvbpoints.h
r0r23501
1/*********************************************************************
2
3    dvpoints.h
4
5   Breakpoint debugger view.
6
7****************************************************************************
8
9    Copyright Aaron Giles
10    All rights reserved.
11
12    Redistribution and use in source and binary forms, with or without
13    modification, are permitted provided that the following conditions are
14    met:
15
16        * Redistributions of source code must retain the above copyright
17          notice, this list of conditions and the following disclaimer.
18        * Redistributions in binary form must reproduce the above copyright
19          notice, this list of conditions and the following disclaimer in
20          the documentation and/or other materials provided with the
21          distribution.
22        * Neither the name 'MAME' nor the names of its contributors may be
23          used to endorse or promote products derived from this software
24          without specific prior written permission.
25
26    THIS SOFTWARE IS PROVIDED BY AARON GILES ''AS IS'' AND ANY EXPRESS OR
27    IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
28    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
29    DISCLAIMED. IN NO EVENT SHALL AARON GILES BE LIABLE FOR ANY DIRECT,
30    INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
31    (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
32    SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
33    HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
34    STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
35    IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
36    POSSIBILITY OF SUCH DAMAGE.
37
38***************************************************************************/
39
40#ifndef __DVBPOINTS_H__
41#define __DVBPOINTS_H__
42
43#include "debugvw.h"
44
45
46//**************************************************************************
47//  CONSTANTS
48//**************************************************************************
49
50
51//**************************************************************************
52//  TYPE DEFINITIONS
53//**************************************************************************
54
55// debug view for breakpoints
56class debug_view_breakpoints : public debug_view
57{
58   friend resource_pool_object<debug_view_breakpoints>::~resource_pool_object();
59   friend class debug_view_manager;
60
61   // construction/destruction
62   debug_view_breakpoints(running_machine &machine, debug_view_osd_update_func osdupdate, void *osdprivate);
63   virtual ~debug_view_breakpoints();
64
65public:
66   // getters
67   // setters
68
69protected:
70   // view overrides
71   virtual void view_update();
72   virtual void view_notify(debug_view_notification type);
73   virtual void view_char(int chval);
74   virtual void view_click(const int button, const debug_view_xy& pos);
75
76private:
77   // internal helpers
78   void enumerate_sources();
79   bool recompute(offs_t pc, int startline, int lines);
80    void pad_astring_to_length(astring& str, int len);
81
82   // internal state
83};
84
85
86#endif
Property changes on: trunk/src/emu/debug/dvbpoints.h
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native
trunk/src/emu/debug/debugvw.c
r23500r23501
4444#include "dvstate.h"
4545#include "dvdisasm.h"
4646#include "dvmemory.h"
47#include "dvbpoints.h"
4748#include "debugcmd.h"
4849#include "debugcpu.h"
4950#include "debugcon.h"
r23500r23501
500501      case DVT_ALLOCS:
501502//          return append(auto_alloc(machine(), debug_view_allocs(machine(), osdupdate, osdprivate)));
502503
504      case DVT_BREAK_POINTS:
505         return append(auto_alloc(machine(), debug_view_breakpoints(machine(), osdupdate, osdprivate)));
506
503507      default:
504508         fatalerror("Attempt to create invalid debug view type %d\n", type);
505509   }

Previous 199869 Revisions Next


© 1997-2024 The MAME Team