summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2026-01-30 15:58:47 +1100
committer Vas Crabb <vas@vastheman.com>2026-01-30 15:58:47 +1100
commit9d034a069f3c1413c6e70c7b855b7b79b9f37a74 (patch)
tree08d8a2001576dd77fd286279e82817a5881e99ef /src/osd/modules/debugger
parentf548e02647523b87b269ff7d165c07670612d12c (diff)
debugger/win, debugger/osx: Check that you have a memory interface before trying to use it (MT09377).
Diffstat (limited to 'src/osd/modules/debugger')
-rw-r--r--src/osd/modules/debugger/osx/debugconsole.mm4
-rw-r--r--src/osd/modules/debugger/osx/disassemblyview.mm5
-rw-r--r--src/osd/modules/debugger/osx/disassemblyviewer.mm10
-rw-r--r--src/osd/modules/debugger/osx/memoryview.mm5
-rw-r--r--src/osd/modules/debugger/osx/memoryviewer.mm10
-rw-r--r--src/osd/modules/debugger/qt/memorywindow.cpp3
-rw-r--r--src/osd/modules/debugger/win/memoryviewinfo.cpp7
7 files changed, 29 insertions, 15 deletions
diff --git a/src/osd/modules/debugger/osx/debugconsole.mm b/src/osd/modules/debugger/osx/debugconsole.mm
index 9673dc852ab..a8c19a384f2 100644
--- a/src/osd/modules/debugger/osx/debugconsole.mm
+++ b/src/osd/modules/debugger/osx/debugconsole.mm
@@ -329,7 +329,7 @@
MAMEMemoryViewer *win = [[MAMEMemoryViewer alloc] initWithMachine:*machine console:self];
[auxiliaryWindows addObject:win];
[win release];
- if ([win selectSubviewForSpace:space])
+ if (space && [win selectSubviewForSpace:space])
{
if (expression != nil)
[win setExpression:expression];
@@ -346,7 +346,7 @@
MAMEDisassemblyViewer *win = [[MAMEDisassemblyViewer alloc] initWithMachine:*machine console:self];
[auxiliaryWindows addObject:win];
[win release];
- if ([win selectSubviewForSpace:space])
+ if (space && [win selectSubviewForSpace:space])
{
if (expression != nil)
[win setExpression:expression];
diff --git a/src/osd/modules/debugger/osx/disassemblyview.mm b/src/osd/modules/debugger/osx/disassemblyview.mm
index 3c41865d311..b3a8e7bc85c 100644
--- a/src/osd/modules/debugger/osx/disassemblyview.mm
+++ b/src/osd/modules/debugger/osx/disassemblyview.mm
@@ -163,7 +163,10 @@
for (auto &ptr : view->source_list())
{
debug_view_disasm_source const *const source = downcast<debug_view_disasm_source const *>(ptr.get());
- auto [mintf, spacenum] = source->space();
+ auto const [mintf, spacenum] = source->space();
+ assert(mintf);
+ assert(0 <= spacenum);
+ assert(mintf->has_space(spacenum));
if (&mintf->space(spacenum) == space)
{
if (view->source() != source)
diff --git a/src/osd/modules/debugger/osx/disassemblyviewer.mm b/src/osd/modules/debugger/osx/disassemblyviewer.mm
index 0a259e31660..b92af4be5af 100644
--- a/src/osd/modules/debugger/osx/disassemblyviewer.mm
+++ b/src/osd/modules/debugger/osx/disassemblyviewer.mm
@@ -142,7 +142,10 @@
- (IBAction)debugNewMemoryWindow:(id)sender {
debug_view_disasm_source const *source = [dasmView source];
- auto [mintf, spacenum] = source->space();
+ auto const [mintf, spacenum] = source->space();
+ assert(mintf);
+ assert(0 <= spacenum);
+ assert(mintf->has_space(spacenum));
[console debugNewMemoryWindowForSpace:&mintf->space(spacenum)
device:source->device()
expression:nil];
@@ -151,7 +154,10 @@
- (IBAction)debugNewDisassemblyWindow:(id)sender {
debug_view_disasm_source const *source = [dasmView source];
- auto [mintf, spacenum] = source->space();
+ auto const [mintf, spacenum] = source->space();
+ assert(mintf);
+ assert(0 <= spacenum);
+ assert(mintf->has_space(spacenum));
[console debugNewDisassemblyWindowForSpace:&mintf->space(spacenum)
device:source->device()
expression:[dasmView expression]];
diff --git a/src/osd/modules/debugger/osx/memoryview.mm b/src/osd/modules/debugger/osx/memoryview.mm
index f2b38b2910e..d600411880d 100644
--- a/src/osd/modules/debugger/osx/memoryview.mm
+++ b/src/osd/modules/debugger/osx/memoryview.mm
@@ -150,8 +150,9 @@
for (auto &ptr : view->source_list())
{
debug_view_memory_source const *const source = downcast<debug_view_memory_source const *>(ptr.get());
- auto [mintf, spacenum] = source->space();
- if (&mintf->space(spacenum) == space)
+ auto const [mintf, spacenum] = source->space();
+ assert(!mintf || ((0 <= spacenum) && mintf->has_space(spacenum)));
+ if (mintf && (&mintf->space(spacenum) == space))
{
if (view->source() != source)
{
diff --git a/src/osd/modules/debugger/osx/memoryviewer.mm b/src/osd/modules/debugger/osx/memoryviewer.mm
index 7a530c820cb..853a5f343ba 100644
--- a/src/osd/modules/debugger/osx/memoryviewer.mm
+++ b/src/osd/modules/debugger/osx/memoryviewer.mm
@@ -142,8 +142,9 @@
- (IBAction)debugNewMemoryWindow:(id)sender {
debug_view_memory_source const *source = [memoryView source];
- auto [mintf, spacenum] = source->space();
- [console debugNewMemoryWindowForSpace:&mintf->space(spacenum)
+ auto const [mintf, spacenum] = source->space();
+ assert(!mintf || ((0 <= spacenum) && mintf->has_space(spacenum)));
+ [console debugNewMemoryWindowForSpace:(mintf ? &mintf->space(spacenum) : nullptr)
device:source->device()
expression:[memoryView expression]];
}
@@ -151,8 +152,9 @@
- (IBAction)debugNewDisassemblyWindow:(id)sender {
debug_view_memory_source const *source = [memoryView source];
- auto [mintf, spacenum] = source->space();
- [console debugNewDisassemblyWindowForSpace:&mintf->space(spacenum)
+ auto const [mintf, spacenum] = source->space();
+ assert(!mintf || ((0 <= spacenum) && mintf->has_space(spacenum)));
+ [console debugNewDisassemblyWindowForSpace:(mintf ? &mintf->space(spacenum) : nullptr)
device:source->device()
expression:[memoryView expression]];
}
diff --git a/src/osd/modules/debugger/qt/memorywindow.cpp b/src/osd/modules/debugger/qt/memorywindow.cpp
index 192c6d7ee13..34147169f39 100644
--- a/src/osd/modules/debugger/qt/memorywindow.cpp
+++ b/src/osd/modules/debugger/qt/memorywindow.cpp
@@ -489,7 +489,8 @@ void DebuggerMemView::addItemsToContextMenu(QMenu *menu)
{
debug_view_memory &memView = *view<debug_view_memory>();
debug_view_memory_source const &source = downcast<debug_view_memory_source const &>(*memView.source());
- auto [mintf, spacenum] = source.space();
+ auto const [mintf, spacenum] = source.space();
+ assert(!mintf || ((0 <= spacenum) && mintf->has_space(spacenum)));
if (mintf)
{
const address_space_config *config = mintf->logical_space_config(spacenum);
diff --git a/src/osd/modules/debugger/win/memoryviewinfo.cpp b/src/osd/modules/debugger/win/memoryviewinfo.cpp
index 5d6bfcb3b54..e5bcc28ee04 100644
--- a/src/osd/modules/debugger/win/memoryviewinfo.cpp
+++ b/src/osd/modules/debugger/win/memoryviewinfo.cpp
@@ -134,10 +134,11 @@ void memoryview_info::update_context_menu(HMENU menu)
bool enable = false;
debug_view_memory &memview(*view<debug_view_memory>());
debug_view_memory_source const &source = downcast<debug_view_memory_source const &>(*memview.source());
- auto [mintf, spacenum] = source.space();
- address_space *const space = &mintf->space(spacenum);
- if (space)
+ auto const [mintf, spacenum] = source.space();
+ assert(!mintf || ((0 <= spacenum) && mintf->has_space(spacenum)));
+ if (mintf)
{
+ address_space *const space = &mintf->space(spacenum);
if (memview.cursor_visible())
{
// get the last known PC to write to this memory location