diff options
| author | 2026-01-30 15:58:47 +1100 | |
|---|---|---|
| committer | 2026-01-30 15:58:47 +1100 | |
| commit | 9d034a069f3c1413c6e70c7b855b7b79b9f37a74 (patch) | |
| tree | 08d8a2001576dd77fd286279e82817a5881e99ef /src/osd/modules/debugger | |
| parent | f548e02647523b87b269ff7d165c07670612d12c (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.mm | 4 | ||||
| -rw-r--r-- | src/osd/modules/debugger/osx/disassemblyview.mm | 5 | ||||
| -rw-r--r-- | src/osd/modules/debugger/osx/disassemblyviewer.mm | 10 | ||||
| -rw-r--r-- | src/osd/modules/debugger/osx/memoryview.mm | 5 | ||||
| -rw-r--r-- | src/osd/modules/debugger/osx/memoryviewer.mm | 10 | ||||
| -rw-r--r-- | src/osd/modules/debugger/qt/memorywindow.cpp | 3 | ||||
| -rw-r--r-- | src/osd/modules/debugger/win/memoryviewinfo.cpp | 7 |
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 |
