summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger/win/debugwininfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Windows: Do not drop into debugger when no MAME window has focus (#13902) npwoods2025-07-121-0/+8
| | | | | | | On Windows, the debugger has a special Windows-specific feature that drops the user into the debugger if the key sequence is pressed. This seems to be present so that the key sequence triggers dropping into the debugger not just from the main window, but also from debugger windows. This has also created an oddity where pressing the debugger key sequence from a MAME window will cause a "User-initiated break" but pressing it from a debugger window will cause "Internal breakpoint" to be displayed. However, while this logic has a check to not apply when to a MAME window, it seems to also activate even if MAME itself is not in focus. This change ensures that a stray debugger sequence in a completely unrelated application won't cause the user to be dropped in the debugger.
* Clean up various stuff. Vas Crabb2025-07-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | docs: Explicitly state that installing a read/write tap returns the pass-through handler. cpu/mb86235: Using lowercas integer literal suffixes hurts readability, especially when it's 1ll (compare to 1LL, especially in a Courier-like font). video/ppu2c0x_vt.cpp: Look for the patterns. mame.lst: Expunge comments that started creeping back in. taito/taitotz.cpp: Use versions as printed on Taito's hard disk labels in descriptions. debug/win: Requiring every debugger window class to care about the console window's views is bad design. That's a clear case of unnecessary coupling. posix/posixptty.cpp: Testing for glibc does not guarantee pty.h is available. It's possible to build glibc for targets where its PTY wrapper functions are not implemented.
* debugger cleanup: use enums for m_views indices (#13687) dave-br2025-05-101-1/+4
| | | | | | | For the wininfos that participate as individual panes in the main console window, their viewinfos are referenced via the m_views[] array with hard-coded indices of 0, 1, and 2. - Define & use enums for those indices (VIEW_IDX_DISASM, VIEW_IDX_STATE, VIEW_IDX_CONSOLE) - Change MAX_VIEWS from a hard-coded constant of 4 to the last enum in that list, which changes it to 3. (I don't think it should have been 4 in the first place.) - wininfos that NEVER appear as panes in the main console window (e.g., logwin_info, pointswin_info, etc.) continue to use m_views[0]
* debugger/win: Added option to disable window grouping. Vas Crabb2025-03-021-1/+3
| | | | | Option is in debugger console window Settings menu. Changes apply on hard reset or restarting MAME. Setting is saved to default.cfg.
* emu/debug/dvdisasm.cpp: Fixed bad display if view is scrolled horizontally. ↵ dave-br2024-08-241-2/+1
| | | | | (#12679) debugger/win/debugwininfo.cpp: Don't restrict maximum window sizes.
* osd: Turned video modules into actual modules, fixed various issues. Vas Crabb2023-02-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't ignore the return status of OSD module initialisation. Attempt to fall back to an alternate module if the selected module fails to initialise. Log more useful diagnostic information at verbose level. Fixed BGFX crash on exit after toggling fullscreen. Also persist more settings than just the selected chains across toggling fullscreen. Turned video modules into OSD modules in the same sense as all the other OSD modules. They now use the same selection/fallback mechanism as all the other modules without special extra code in the OSD implementations. Untangled some object ownership mess. Windows own renderers, OSD objects own windows. Fixed a refrence loop that caused the first window object to always leak. Don't create renderer object until after underlying window has been created. Fixed issues with order of creation/destruction when toggling fullscreen or changing prescale in fullscreen with -switchres in SDL builds. Use more smart pointers in BGFX and Direct3D render modules. Most of the code now reutrns a smart pointer when handing over ownership or a naked pointer when retaining ownership. Fixed a few leaks and simplified cleanup code. Encapsulated various OSD modules better.
* -debugger/win: Cascade positions of new debugger windows. Vas Crabb2023-01-151-3/+8
| | | | | -osd: Better button names for NVIDIA Shield and Xbox One controllers with SDL game controller module.
* Debugger updates: Vas Crabb2022-09-201-10/+14
| | | | | | | | | | | | | | | | | | | | | | | Made closing the Qt debugger console window hide all debugger windows and run the emulated machine (debugger windows will be shown on next user break or breakpoint hit). This matches the behaviour of the Win32 and Cocoa debuggers. Made Qt debugger clean up its windows on exit rather than on subsequent starts. This fixes GitHub #9789. Made Qt debugger less reliant on global variables, and made code to save and load configuration a bit less convoluted. It still needs more refactoring on this front, but it's in slightly better shape now. Made Qt debugger a bit less crashy on invalid configuration. Still plenty of ways to crash it, but every little bit counts. Made Qt debugger do less comparisons on menu item names and object names - it might be possible to localise one day. Moved all the C++ debugger implementations into namespaces. They're using awfully generic class names, so it's about time.
* Added a crude dark theme for the Win32 debugger. Vas Crabb2022-09-171-0/+6
| | | | | | Also made a start on weaning the Qt debugger off its weird configuation objects. It can now save more view state with less string comparisons on memory labels, but it can't restore all of it yet.
* debugger/win: Added capability to save/restore window arrangement. Vas Crabb2022-09-161-1/+105
| | | | | | | | | * Format is mostly compatible with the Cocoa debugger, besides reversed vertical positioning. * Made Qt debugger more compatible with configuration format used by Win32 and Cocoa debuggers. * emu/config.cpp: Preserve elements with no registered handlers in default and system configuation files.
* Fairly significant overhaul of Lua engine and some cleanup. Vas Crabb2020-11-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The things that were previously called device iterators are not iterators in the C++ sense of the word. This is confusing for newcomers. These have been renamed to be device enumerators. Several Lua methods and properties that previously returned tables now return lightweight wrappers for the underlying objects. This means creating them is a lot faster, but you can't modify them, and the performance characteristics of different operations varies. The render manager's target list uses 1-based indexing to be more like idiomatic Lua. It's now possible to create a device enumerator on any device, and then get subdevices (or sibling devices) using a relative tag. Much more render/layout functionality has been exposed to Lua. Layout scripts now have access to the layout file and can directly set the state of an item with no bindings, or register callbacks to obtain state. Some things that were previously methods are now read-only properties. Layout files are no longer required to supply a "name". This was problematic because the same layout file could be loaded for multiple instances of the same device, and each instance of the layout file should use the correct inputs (and in the future outputs) for the device instance it's associated with. This should also fix video output with MSVC builds by avoiding delegates that return things that don't fit in a register.
* -Switch to building MAME as C++17. Vas Crabb2020-11-151-0/+1
| | | | | | | * Updated sol2 to 3.2.2 * Updated pugixml to 1.10 * Increased minimum clang version to 6 * Cleaned up some stuff that can use new features
* Debugger expression and memory access overhaul AJR2020-05-251-9/+10
| | | | | | | | | | | | | - Memory references in expressions no longer default to the console's visible CPU if no device name was specified, except when entered through the console itself. Expressions in view windows now use the context of the currently selected device instead. - The pcatmem debug command and similar qt mouseover function now produce an error message if the initial address translation fails. Related internal changes (nw) - The debugger_cpu class no longer interprets memory accesses. The existing routines have been moved into symbol_table (which used to invoke them as callbacks), and reimplemented in most other places. Thecode duplication is a bit messy, but could be potentially improved in the future with new utility classes. - The cheat engine no longer needs to hook into the debugger_cpu class or instantiate a dummy instance of it. - The inclusion of debug/express.h within emu.h has been undone. Some debugging structures now need unique_ptr to wrap the resulting incomplete classes; hopefully the performance impact of this is negligible. Another direct consequence is that the breakpoint, watchpoint and registerpoint classes are no longer inside device_debug and have their own source file. - The breakpoint list is now a std::multimap, using the addresses as keys to hopefully expedite lookup. - The visible CPU pointer has been removed from the debugger_cpu class, being now considered a property of the console instead. - Many minor bits of code have been simplified.
* there are reasons for things being the way they were (nw) Vas Crabb2020-01-311-0/+5
|
* fixed some modernize-use-auto clang-tidy warnings (nw) (#6238) Oliver Stöneberg2020-01-301-3/+3
|
* fixed some modernize-use-equals-default clang-tidy warnings (nw) (#6237) Oliver Stöneberg2020-01-301-5/+0
|
* rewind implementation fixes and improvements vadosnaprimer2017-12-221-1/+19
| | | | | | | | | | | | | - reset scheduler savestate to what it was for years before rewind -- changing saved variables should be done after thorough testing. right now, adding some vars breaks some machines, adding other vars breaks others - switch to megabyte-wise capacity -- savestate size greatly differs between machines, relying on state count is unstable - switch to internal indexing -- no longer depends on inaccurate machine time - rewind accelerator key in debugger (Ctrl+F11) - report capacity hit (once), with some useful info - make error reports saner - mention rewind and rewind_capacity in the docs
* fix windows compile (nw) Miodrag Milanovic2017-02-111-0/+1
|
* Change window handle storage to template instead of void* (nw) (#1725) Brad Hughes2016-11-171-1/+1
| | | | * Change window handle storage to template instead of void* (nw)
* use standard types uintptr_t, char16_t and char32_t instead of FPTR, ↵ Miodrag Milanovic2016-10-221-1/+1
| | | | utf16_char, unicode_char (nw)
* Convert OSD monitor info to modules plus add DXGI implementation Brad Hughes2016-09-141-0/+1
|
* more cleanup (nw) Miodrag Milanovic2016-07-011-1/+0
|
* Move window_list to osd_common_t Brad Hughes2016-06-111-1/+1
|
* Unify window_list in Windows and SDL OSD Brad Hughes2016-06-101-1/+1
|
* Major refactoring of debugger core [Ryan Holtz] therealmogminer@gmail.com2016-06-081-9/+10
| | | | | | | | * Eliminate globals/file statics * Remove lots of stuff from global scope * Use std::function for custom command registration * Eliminate some trampolines * Build fixes from Vas Crabb and balr0g
* Revert "Temp revert of Brad changes (nw)" Miodrag Milanovic2016-04-251-1/+1
| | | | This reverts commit 5e831f6506ee06f8c30cb113551ee0fec53804db.
* Temp revert of Brad changes (nw) Miodrag Milanovic2016-04-251-1/+1
|
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-22/+22
|
* Refactor OSD window. Brad Hughes2016-04-211-1/+1
| | | | | | | | | | Unified renderer in osd_window as std::unique_ptr Made windows all std::shared_ptr<window_type> Made window lists std::list<std::shared_ptr<window_type>> Updated OSD SDL worker_param to not use malloc (not compatible with smart pointers) Made renderer pointer to window a weak reference. May not be available during destruction of the window.
* Standardize platform window pointer storage in osd_window. Brad Hughes2016-04-181-1/+1
| | | | Also encapsulate show/hide capture/release cursor functionality.
* Initial conversion of core to C++14. Note that compilers are now limited to ↵ Miodrag Milanovic2015-12-031-2/+2
| | | | GCC 4.9.0 and up, Clang 3.4.0 and up, and VS2013 and up [Miodrag Milanovic]
* more cleanups and fix (nw) Miodrag Milanovic2015-11-111-3/+0
|
* Rename *.c -> *.cpp in our source (nw) Miodrag Milanovic2015-11-081-0/+603