summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcmd.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add %o format support to debugger printf command AJR2021-04-061-0/+26
|
* debug: add cls command to clear console buffer hap2021-02-161-0/+11
|
* Eliminate ARRAY_LENGTH template in favor of C++17's std::size AJR2021-02-141-1/+1
| | | | | | | | | | * osdcomm.h: Move definition of EQUIVALENT_ARRAY to coretmpl.h * sharc.cpp, gt64xxx.cpp, ym2413.cpp, gb_lcd.cpp, snes_ppu.cpp: Use STRUCT_MEMBER for save state registration * gio/newport.cpp, megadrive/svp.cpp, nes_ctrl/bcbattle.cpp, arm7.cpp, tms9995.cpp, pckeybrd.cpp, sa1110.cpp, sa1111.cpp, jangou_blitter.cpp, vic4567.cpp: Use std::fill(_n) instead of memset * emucore.h: Remove obsolete typedef
* Stop converting debugger console commands to all lowercase before parsing ↵ AJR2021-02-131-47/+48
| | | | | | | them. Case insensitivity has been preserved for command names, CPU and region tags and certain symbolic parameters (as well as expressions, which were treated as case-insensitive in other contexts), but filenames and character constants are no longer automatically lowercased. * debugcmd.cpp, debugcon.cpp: Remove some superfluous c_str() calls * debugcmd.cpp: Remove local member referencing debugger_cpu, which is accessed only rarely since the console now tracks the visible CPU
* Much more core std::string_view modernization AJR2021-01-201-1/+2
| | | | | | | | | | | | | | | - Remove corestr.h from emu.h; update a few source files to not use it at all - Change strtrimspace, strtrimrightspace and core_filename_extract_* to be pure functions taking a std::string_view by value and returning the same type - Change strmakeupper and strmakelower to be pure functions taking a std::string_view and constructing a std::string - Remove the string-modifying version of zippath_parent - Change tag-based lookup functions in device_t to take std::string_view instead of const std::string & or const char * - Remove the subdevice tag cache from device_t (since device finders are now recommended) and replace it with a map covering directly owned subdevices only - Move the working directory setup method out of device_image_interface (only the UI seems to actually use the full version of this) - Change output_manager to use std::string_view for output name arguments - Change core_options to accept std::string_view for most name and value arguments (return values are still C strings for now) - Change miscellaneous other functions to accept std::string_view arguments - Remove a few string accessor macros from romload.h - Remove many unnecessary c_str() calls from logging/error messages
* natkeyboard: Remove from ioport_manager AJR2020-12-261-2/+2
|
* Fairly significant overhaul of Lua engine and some cleanup. Vas Crabb2020-11-251-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Implement views, which are essentially bankdevs integrated into the Olivier Galibert2020-11-221-3/+8
| | | | memory map system. [O. Galibert]
* Add strdump debugger command for dumping memory as ASCII strings AJR2020-11-181-0/+180
|
* -emu/render.cpp: Load from all external artwork paths. Vas Crabb2020-10-131-2/+2
| | | | | | -emu/rendlay.cpp: Made real component drawing code a bit less gross. -emu/debugcon.cpp: Less screaming now that things aren't macros.
* emu/debug: Removed more macros, added more const, make a couple more things ↵ Vas Crabb2020-10-121-2/+2
| | | | use smart pointers.
* Add abs, bit, s8, s16, s32 functions to debugger AJR2020-09-251-9/+67
|
* Merge tag 'mame0223' into mainline-master Vas Crabb2020-08-061-25/+23
|\ | | | | | | MAME 0.223
| * -debug/debugcmd.cpp: Don't leak an open FILE when an argument is invalid and ↵ Vas Crabb2020-08-061-25/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | also fixed a spelling error. * The saver/loadr commands should consider region endianness for portability. -cpu/gigatron: Capitalisation of hex values was inconsistent, change it to lowercase as that tends to be the MAME standard. -machine/exorterm.cpp: Fixed inputs magically changing on reset when they shouldn't (there are still others that should be fixed). -mpu4vid.cpp: Corrected some errors in game descriptions. -Fixed a couple of editing errors.
* | Add 'fill' command to debugger. Syntax and operation are similar to 'find' ↵ AJR2020-08-011-0/+112
|/ | | | command.
* srcclean for 0.223 Vas Crabb2020-07-261-1/+1
|
* add saver to operate memory region (#6837) Jacob2020-06-211-0/+110
| | | | | * add debugger command saver for memory region * added debugger command loadr for memory region
* Allow debugger dump command to dump with byte granularity from address ↵ AJR2020-06-171-1/+1
| | | | spaces with positive shifts
* Debugger expression and memory access overhaul AJR2020-05-251-41/+124
| | | | | | | | | | | | | - 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.
* Add optional condition parameter to debugger gex command AJR2020-05-031-3/+7
|
* Make expressions octal for applicable address spaces in disassembly view AJR2020-04-131-21/+21
| | | | | | | | | | debug/express.cpp, debugcpu.cpp: General cleanup (nw) - Change default base from hardcoded macro to dynamic parameter for parsed_expression - Change symbol table parameters and variables to references or std::reference_wrapper - Remove the (unused) ability to construct a parsed_expression without a symbol table - Eliminate symbol_table &table and void *memory_param arguments from callbacks (superfluous now that std::function can bind everything necessary) - Eliminate globalref pointer from symbol_table - Add explicitly defaulted move constructor and move assignment operator
* Fix two cases where debugger can crash mame ("cheatlist" command before ↵ quasiscroto2020-03-131-0/+6
| | | | "cheatinit", long strings after "help")
* Merge pull request #6195 from firewave/includes R. Belmont2020-01-221-1/+1
|\ | | | | use C++ library includes (nw)
| * use C++ library includes (nw) firewave2020-01-221-1/+1
| |
* | fixed some clang-tidy warnings (nw) (#6197) Oliver Stöneberg2020-01-221-1/+1
|/ | | | | | | | | | | | | | * fixed some bugprone-throw-keyword-missing clang-tidy warnings (nw) * fixed some modernize-use-nullptr clang-tidy warnings (nw) * fixed some readability-delete-null-pointer clang-tidy warnings (nw) * fixed some performance-faster-string-find clang-tidy warnings (nw) * fixed some performance-for-range-copy clang-tidy warnings (nw) * fixed some readability-redundant-string-cstr clang-tidy warnings (nw)
* Allow saving members of structures in n-dimensional arrays, even if the ↵ Vas Crabb2019-12-091-4/+4
| | | | members themselves are n-dimensional arrays - see qsoundhle.cpp for an example of loops disappearing. This can greatly reduce the number of save state registrations in some cases. Obviously I want to know if save states are broken in something by this.
* Add cpulist command to debugger AJR2019-12-071-0/+16
|
* debugcmd.cpp: Correct the error message too (nw) AJR2019-09-231-1/+1
|
* Fix debugger dump command for address-shifted spaces AJR2019-09-211-11/+8
|
* Use std::forward_list for breakpoint and registerpoint lists (nw) AJR2019-09-101-12/+12
|
* fix MT 7382, 32bit overflow in some debug commands (nw) hap2019-07-301-7/+7
|
* Fix calculation of TMS34010/020 shifted memory addresses for debug save and ↵ AJR2019-07-041-2/+2
| | | | load commands
* (nw) Clean up the mess on master Vas Crabb2019-03-261-13/+14
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-14/+13
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* distate: Expose state_find_entry (nw) AJR2019-03-161-1/+1
|
* Exclude non-CPUs from numerical indexing for debugger commands AJR2019-03-131-5/+10
|
* Eliminate qsort usage in debugger (nw) AJR2019-02-161-8/+4
|
* debugger: add %c to logerror Sven Schnelle2018-11-171-0/+12
| | | | | | | | | | | | | This is useful for catching putchar() like functions and printing the written value to error.log. On hp9k_3xx, i'm using this with the HP 300 test software, to log test error messages that get printed on screen to error.log, so i have the message directly after the debug messages from my driver. Example: wpset 0xfffe36be,80,w,1,{ logerror "%c", wpdata; g }
* debugger: add 'gp' command Sven Schnelle2018-11-061-0/+14
| | | | | | | | | | | | | | gp 'go privilege' starts execution until the privilege mode changes. This can be used to break on task switches. I.e on m68k, one could do: gp { ~sr & 0x2000 && crp_aptr == 0x1234567 } which would execute until the privilege mode changes to user mode and the CPU root pointer is 0x1234567. for cpu code, all that is needed to make this work is calling debugger_privilege_hook() when the execution level changes.
* debugcpu.cpp: Move scripting functions down into console (nw) AJR2018-07-261-2/+2
|
* (nw) srcclean and some cleanup: Vas Crabb2018-07-221-1/+1
| | | | | | * Make more #include guards follow standard format - using MAME_ as the prefix makes it easy to see which ones come from our code in a preprocessor dump, and having both src/devices/machine/foo.h and src/mame/machine/foo.h causes issues anyway * Get #include "emu.h" out of headers - it should only be the first thing in a complilation unit or we get differences in behaviour with PCH on/off * Add out-of-line destructors to some devices - it forces the compiler to instantiate the vtable in a certain location and avoids some non-deterministic compiler behaviours
* emumem: Backend modernization [O. Galibert] Olivier Galibert2018-06-291-14/+34
|
* debugger: make save/load support virtual memory (nw) (#3683) Patrick Mackinlay2018-06-231-18/+33
| | | This makes these commands useful and consistent with dump in a virtual memory environment. One minor issue is what to do with save for an unmapped memory address: the approach taken here is to write the space.unmap() value, which seems the least harmful. On load, unmapped addresses are not written to, meaning that save/load with a constant address map work as expected.
* debugger: add command for go_exception (#3682) Patrick Mackinlay2018-06-231-0/+17
|
* Kludge some absolute tag lookups in the core that can't really be helped (nw) AJR2018-05-211-1/+1
|
* Make debugger dump command work with unaligned addresses AJR2018-05-141-6/+6
|
* srcclean (nw) Vas Crabb2018-04-221-88/+88
|
* remove safe_pc() and safe_pcbase() (nw) smf-2018-04-131-1/+1
|
* Added suspend and resume debugger commands (#3411) GavinAndrews2018-04-021-0/+105
|
* Better fix for find command (nw) AJR2018-03-121-2/+2
|