summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug
Commit message (Collapse)AuthorAgeFilesLines
* dvmemory: redo 47377bfe7a49cf301957cc90f6ac5f08a59c503c hap2026-05-033-12/+4
|
* emu/debug/dvmemory.cpp: Recomputing memory view based on evaluated start ↵ holub2026-04-262-1/+9
| | | | address value. (#15251)
* -emu/dislot.cpp: Cleaned up interface. Vas Crabb2026-03-221-37/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Added a helper for the common operation of replacing all options, setting default, and setting whether the slot is fixed (reduced boilerplate in slot devices a bit). * Fixed a bug where slot options copied the supplied name but also required the string to remain valid for their lifetime. * Use std::string_view for strings that should never be null. * Reduced some duplication. -dynax/ddenlovr.cpp: Allow a mahjong panel to be connected for all hanafuda games with slotted control panels. This is how the games were operated most of the time, and all mahjong controls are displayed in input tests. Also cleaned up some DIP switch settings. -emu/inpttype.h: Got rid of IPT_GAMBLE_SERVICE. -bus/bk/parallel.h: Fixed a bug where the supplied options and default weren't actually used. -emu/debug/debugcmd.cpp: Use C++ file stream for dumping address maps. -frontend/mame/clifront.cpp: Use osd_printf_info output for interactive verbs. -jaleco/ms32.cpp: Simplified mahjong panel column permutation. -capcom/cps1bl_5205.cpp, mattel/juicebox.cpp, sun/sun2.cpp, sun/sun3.cpp: Cleaned up logging. -emu/xtal.cpp: Reduced temporary objects and duplicated code.
* srcclean and tidy Vas Crabb2026-02-221-1/+1
|
* cpu/sharc: Improved memory access code: Vas Crabb2026-02-111-5/+8
| | | | | | | | | | | | | | | | | | | | | | cpu/sharc/sharcdrc.cpp: Exploit data memory layout to bypass the memory system for both 32-bit and 16-bit SRAM accesses. cpu/sharc/sharcdrc.cpp: Exploit the way the SHARC toolchain lays out executable code and data in SRAM to greatly reduce unnecessary cache flushes. cpu/sharc/sharcdrc.cpp: Implemented Rn = NOT Rx (used by Sega Model 2B games). cpu/sharc/sharcdrc.cpp: Align 32-bit program memory accesses with the most significant bit of the bus (corresponds to interpreter change in 0f368c268c1eabc176af8e5cdf780b5d60e8d9a0 from GitHub #13770). emu/debug/points.cpp: Fixed hang when a watchpoint is hit on a 64-bit wide address space with word addressing. sega/model2.cpp: Enabled SHARC recompiler for Model 2B (can be disabled again before release if too many things are broken).
* emu/debug: Allowed device_state_interface to participate in global symtable ↵ holub2026-02-063-27/+34
| | | | state (#14898)
* emu/debug: Use "classic" locale for debug console. Vas Crabb2026-01-2711-84/+169
|
* lisa: Massive updates Olivier Galibert2026-01-0710-268/+298
| | | | | | | | core: Better support for external mmus Note: I didn't expect to push that one right now, it's missing documentation among other things, but since some people seems to be interested to work on that driver I don't want to hold them.
* fill q.value was not working, you will not guess what the bug was Olivier Galibert2025-10-211-1/+1
|
* Fix parsing of unary ! operator in debug expressions AJR2025-09-261-1/+1
|
* -dynax/ddenlovr: Credit limit should be multiplied by coin rate for Hana ↵ Vas Crabb2025-09-181-9/+11
| | | | | | Gokou, Return of Sel Jan II and Mahjong Dai Touyouken. -emu/debug/debugvw.cpp: Don't persist fallback expressions.
* Clean up some stuff: Vas Crabb2025-09-033-127/+73
| | | | | * emu/debug/express.cpp: Reduced unnecessary duplication. * misc/crystal.cpp: Tidied a little.
* emu/debug: Extended memory commands for region and space (#13767) holub2025-08-307-38/+947
|
* -cpu/drcbex86.cpp: Not nuking the destination register on 64-bit rotate is ↵ Vas Crabb2025-08-051-27/+8
| | | | | | | important (fixes MT09228), also slight optimisations. -debug/debugcmd.cpp: Made the code for symlist marginally less dreadful.
* Fix symlist default CPU (#13886) dave-br2025-07-261-2/+2
| | | When executed with no parameters, symlist was displaying the symbol tables for the first CPU and the debugger built-in globals. Defaulting to the first CPU like that didn't make sense. It now displays the symbol tables for the VISIBLE cpu and the debugger built-in globals.
* emu/debug/debugcmd.cpp: Have print command insert spaces between numbers AJR2025-07-251-0/+4
|
* debugcmd: no need to try to convert string_view to const char*, fix possible ↵ hap2025-06-111-25/+28
| | | | nullptr access
* debugger: symlist usability + symbol table extensibility (#13694) dave-br2025-05-204-41/+75
| | | | | | | Address issue #6655 (symlist command usability), add a bit of plumbing for future extensibility. symlist with no arguments displays all global *and* :maincpu symbols, with clear header text for each list. At the bottom, prints helper text to make user aware of the cpu form To allow for adding new kinds of symbols in the future, this adds an enum field to symbol table for its 'type', for prettier printing from symlist. Symlist now traverses symbol table chain completely.
* emu/inpttype.ipp: Group default double-up game control assignments on home row. Vas Crabb2025-05-081-3/+3
| | | | | | | | | | | | | * Also moved Mahjong P to P and Payout to 4. This fixes the conflict between Mahjong I and Payout. * misc/gms.cpp: Added missing Key Out, Payout and hopper inputs for Super 555 and improved input names. * misc/gms.cpp: Use poker input types for Baile 2005. * dynax/ddenlovr.cpp, dynax/dynax.cpp, dynax/royalmah.cpp: Removed Payout assignments as they match the new default anyway. * docs: Bumped version since various features not in 0.277 are documented now.
* [win] debugger crash: Add fallback to "0" if address evaluation fails (#13686) dave-br2025-05-071-1/+13
| | | | | Memory window address field: If address string evaluation fails, we'd fall back to the last-known-working string. This works great if the failure is due to the user changing the string. But if the user changes the source, that also can cause failures (different symbol table used for evaluation), and this fallback does not help. The fix is to add a second fallback: Use "0" as the address string when all else fails.
* debugcmd: update prev commit: change out+app to in+out+ate hap2025-04-191-3/+3
|
* debugcmd: correct trace file append hap2025-04-191-1/+1
|
* -cpu/e132xs.cpp: Improved exception emulation: Vas Crabb2025-04-014-1/+369
| | | | | | | | | | * Fixed behaviour of exceptions in delay slots, and fixed recompiler not updating ILC and P for some exceptions. * Implemented privilege error exception on setting L in user mode for interpreter. -emu/debug, osd/modules/debugger: Added an option to show exceptionpoints in breakpoints windows.
* Miscelaneous minor fixes: Vas Crabb2025-03-301-28/+28
| | | | | | | | | | | | | | | Changed "Exception Points" to "Exceptionpoints" in the debugger documentation and help. This better matches "Watchpoints" and "Registerpoints". Also, it's very confusing that you see the help topic listing showing "Exception Points" but typing "help Exception Points" doesn't actually work. cpu/e132xs: Fixed a flags issue in the recompiler. misc/dgpix.cpp: Demoted The X-Files to not working with unemulated protection. skeleton/turnierdart.cpp: The srcclean on this file was missed.
* diexec: Add callback to allow debugger to break into the middle of wait-type ↵ AJR2024-11-172-63/+158
| | | | | | | | | | instructions whose execution time is normally indefinite. When this happens, a special message may be printed to the debug console stating the location of the last actual instruction executed before the wait (if there was one). Note that since the callback ignores the current value of the program counter, this special type of debugger break cannot be entered through breakpoints or instruction stepping commands. The callback also leaves no effect on PC history tracking or trace logs. * cpu/hd61700, cpu/tms32031: Add standard IRQ callback * cpu/m68000gen.py: Change name of invoked executable to bin/python3 * cpu/m6809: Eliminate PC "massaging" for SYNC and similar instructions
* emu/debug, osd/modules/debugger/qt: Clean up #includes a bit AJR2024-09-3012-15/+12
|
* emu/debug/dvdisasm.cpp: Fixed bad display if view is scrolled horizontally. ↵ dave-br2024-08-242-21/+23
| | | | | (#12679) debugger/win/debugwininfo.cpp: Don't restrict maximum window sizes.
* Cleaned up various stuff. Vas Crabb2024-06-301-5/+7
| | | | | | | | | | * sony_news.xml: Added proper compatibility flags for different generations. * cpu/pic16x8x: This is very much a derivative work. * cpu/tms32025.cpp: Allow stack push/pop to be inlined. * tecmo/bombjack.cpp: Avoid needing to remove and replace devices in machine configuration. * Various other cleanup.
* debug: fix MT#08870, debugger tracesym regression Patrick Mackinlay2024-06-051-1/+2
|
* debug/express.cpp: Fix bad iterator comparison in postfix conversion. (#12197) invertego2024-03-301-1/+1
| | | | | | One iterator was being compared with another from the wrong container. I observed this by chance when I hit an assert in a debug MSVC build with checked iterators enabled. This bug could cause dereferencing of a past-the-end iterator in expressions ending with an operator.
* emu/debug/debugcmd.cpp: Add NUL-terminated string argument support to ↵ Patrick Mackinlay2024-03-212-33/+84
| | | | | | | printf/logerror. (#12124) * Use %s to read NUL-terminated strings from emulated memory. Precision sets maximum length. * Also added left-justification option for numeric and string formats. * Made documentation more consistent and removed duplication.
* emu/debug/debugcmd.cpp: Added support for lowercase hex to printf/logerror. ↵ Vas Crabb2024-03-193-71/+49
| | | | | | | | | [Patrick Mackinlay] Also simplified implementation by better leveraging util/strformat.h. This is from pull request #12124, to get some testing for the fundamental change before freeze.
* coreutil.h: Eliminate core_crc32 wrapper function in favor of ↵ AJR2024-02-261-2/+1
| | | | util::crc32_creator
* Clean up several sprintf() deprecation warningss in non-3rdparty code. [R. ↵ arbee2023-06-033-6/+6
| | | | Belmont]
* debughlp: document gp command Patrick Mackinlay2023-05-231-1/+23
|
* Restored ability of for image devices to report specific error messages. Vas Crabb2023-04-081-4/+12
| | | | | | | | | | | | | | Restores ability to give specific/detailed messages removed in 6f7e4141ea14acaaf9cb973c66788fabb3457023 while pandering to obsession with single return value. Moved responsibility for displaying the error message in the UI to the caller rather than device_image_interface, and made device_image_interface always log the error along with the full path and error condition content. Gave several image devices more detailed error messages. Added some FIXME comments for apparent bugs.
* Improvements to debugger 'map' command AJR2023-04-021-4/+5
| | | | | - Add names of physical and logical spaces now that one space can map to another - Correct usage of address space masks
* API change for device_image_interface AJR2023-03-301-2/+3
| | | | | | | | | - Remove the seterror method for recording error messages and conditions. Condition codes have been made return values for call_load, call_create and various related callbacks. Error messages (which many devices weren't generating) are now displayed through osd_printf_error. - Eliminate the image_init_result and image_verify_result pass/fail enumeration types. Update many functions that were returning these enumerations or simply bools to return std::error_condition instead. In some cases, this type is now passed down from internal parsing/loading functions which were already returning it. In various other cases, the former default UNSPECIFIED has been used as a catchall for I/O errors; anticipated future refactorings should make these error returns more specific. - Expand the image_error categories to include INVALIDLENGTH, NOSOFTWARE and BADSOFTWARE. The first is largely self-explanatory. The second is generated by the core to indicate failure to find software items in lists. The third is provided for devices to indicate semantic errors in software list entries. - Change the return type of floppy_image_device::identify to a pair so the potential error condition can be passed along to the UI without storing it in a member variable. - Move device_image_interface::message down into snapshot_image_device and change its implementation to use string_format instead of printf. - Correct a typo in the shortname of the generic snapshot device.
* debugbuf.cpp: Note flaw in design AJR2023-03-301-0/+2
|
* Apply workaround for debugger history command consuming ridiculous amounts ↵ AJR2023-03-291-1/+1
| | | | of memory when jumping around large address spaces
* Various optimisations to code generaton. Vas Crabb2023-03-264-14/+14
| | | | | | | | | | | | | | | util/bitmap.cpp, util/palette.cpp: Marked lots of things constexpr. Bitmaps don't throw exceptions on allocation failure, they just become invalid. Almost nothing in MAME actually checks for this. emu/profiler.cpp: Abort if the profile stack overflows rather than throwing an exception. This is a developer feature and if it overflows, the code is broken. Calling a noreturn noexcept function generates less code than throwing an exception, which adds up. util/strformat.cpp: Traded away some unnecessary flexibility for more compact code. The stream objects must derive from std::basic_ostream now - they can't just be any old objects with the expected operators.
* mcs96: Translate first 256 bytes of main memory space to register space AJR2023-03-191-0/+2
| | | | * dvmemory.cpp: Fix oversight in recent refactoring (uninitialized variable)
* dimemory: Add the target address space to translate, wrap the constants Olivier Galibert2023-03-184-90/+121
| | | | divtlb: Wrap the constants
* Interrupt callback rationalization AJR2023-03-112-7/+68
| | | | | | | | | | | - Make CPUs pass interrupt return PC as a second argument to standard_irq_callback - Add interrupt return PC to "Stopped at interrupt" message produced by debugger 'gint' command - Add messages to trace logs whenever interrupts are accepted - Attempt to step over interrupt routines for applicable debugger commands - Eliminate standard_irq_callback_member wrapper method - Update many CPU cores to invoke standard_irq_callback at the start of or during interrupt processing, rather than at the end or when the input line changes - Remove IRQ callbacks for some input lines that never cause interrupts - mb88xx, mcs48: Add IRQ callbacks for internal interrupts
* Fix debugger exception point hit message AJR2023-03-091-2/+2
|
* Various updates, mostly around Lua: Vas Crabb2023-03-071-7/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compile Lua as C++. When Lua is compiled as C, it uses setjmp/longjmp for error handling, resulting in failure to unwind intermediate stack frames. Trying to ensure no objects with non-trivial destructors are in scope when raising a Lua error is error-prone. In particular, converting an exception to a Lua error becomes convoluted, and raising a Lua error from a constructor is effectively impossible. Updated Lua to 5.4.4 - this includes a brand-new garbage collector implementation with better performance. The main thing removed is the deprecated bitlib. Updated sol2 to version 3.3.0 - this adds support for Lua 5.4 and fixes a number of issues, including not correctly handling errors when Lua is built as C++. Updated LuaFileSystem to version 1.8.0 - this adds support for symbolic links on Windows, as well as Lua 5.4 compatibility. Updated LuaSQLite3 to version 0.9.5 - this fixes issues in multi-threaded environments, as well as Lua 5.4 compatibility. Fixed double-free after attempting to construct a debugger expression from Lua with an invalid string, and exposed expression error to Lua in a better way. Added warning level print function to Lua. Fixed saving cheats with shift operators in expressions, although this code isn't actually used as there's no cheat editor.
* debughlp.cpp: Use ovectorstream instead of static char array and sprintf AJR2023-02-122-8/+11
|
* Various input and OSD refactoring: Vas Crabb2023-01-292-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | osd: Supply OSD object to modules on initialisation. Encapsulated some event handling in the OSD objects rather than leaving it in free functions. Put various stuff in namespaces. osd/modules/input: Enabled dinput, xinput and winhybrid modules for Windows SDL builds, and enabled background input for dinput and xinput (and by extension winhybrid) modules. Also fixed some COM and X11 resource leaks. osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match Windows, and exposed vertical and horizontal scroll as Z and rZ axes. Moved SDL UI event handling out of input devices into OSD object. osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's correctly identified as a relative axis (it maps to the scroll wheel equivalent). osd: Added an option to choose the network provider module. Mostly useful if you build with both TUN/TAP and pcap support included, or if you want to disable emulated networking completely. emu/input.cpp: Use a better strategy for assembling input code names that uses fewer temporary strings and doesn't require use of the non-Unicode-aware space trimming function (fixes MT08552). osd/modules/input_dinput.cpp: Improved polling logic. osd: Made various parts of the input code less dependent on concrete emu objects, and reduced inappropriately passing around the machine object. Made input modules less dependent on OSD implementation. Encapsulated some stuff and got rid of some vestigial newui and SDL1 support code. Cleaned up some interfaces. Moved OSD options classes to their own files. Prepare to remove main.h from emu.h - it's mostly used to get the application name, which the vast majority of emulated devices don't need to do.
* debugcon.h: Remove long-obsolete macros AJR2023-01-081-4/+0
|
* debugbuf.cpp: Don't use paged formats for addresses in disassembler output ↵ AJR2023-01-071-2/+2
| | | | unless logical address width exceeds page size