summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/dvdisasm.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Debugger-related feature removals and cleanup AJR2021-08-151-3/+7
| | | | | | | | - Remove the hotspot read tracker. This was never robustly implemented, but changes to the memory system made it much less useful, and the "speedup opportunities" which it aimed to determine are not very important from a current emulation standpoint. - Remove the CURSP/GENSP state symbol and the generic sp() getter. Stacking semantics vary too much between CPU architectures for this to be of much use. (A "SP" symbol has been added to a few CPU cores whose stack pointers were otherwise not being registered.) - Remove the cached pointer to device_state_interface and the state() fast accessor from device_t. Most users of device_state_interface either already had a pointer to the specific CPU device type or needed to check first for the presence of the interface. - Change the PC memory write tracker to use pcbase(), which works even when the instruction callback is masked out, instead of peeking at the PC history index. - Remove some obsolete watchpoint-related definitions from machine.h.
* Fix minor positioning glitches in disassembly view related to changing sources AJR2021-05-091-3/+5
|
* 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.
* Remove some deprecated instantiations of static constexpr members (MSVC ↵ Vas Crabb2020-11-151-3/+0
| | | | complains about them now)
* emu: correct some file headers (nw) hap2020-06-191-1/+1
|
* Debugger expression and memory access overhaul AJR2020-05-251-7/+1
| | | | | | | | | | | | | - 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.
* Make expressions octal for applicable address spaces in disassembly view AJR2020-04-131-1/+5
| | | | | | | | | | 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
* Make debugger view startup more efficient - it's still not going to be ↵ Vas Crabb2019-11-181-7/+10
| | | | practical with 200k save items, but it's better than before
* misc cleanup: Vas Crabb2019-11-181-6/+7
| | | | | | | * Got rid of some more simple_list in core debugger code * Fixed a buffer overrun in wavwrite (buffer half requried size) * Slightly reduced dependencies and overhead in wavwrite * Made new disassembly windows in Qt debugger default to current CPU
* Use std::forward_list for breakpoint and registerpoint lists (nw) AJR2019-09-101-2/+2
|
* dvdisasm.cpp: move to the position of the cursor only if the cursor is ↵ yz70s2019-08-091-1/+1
| | | | | | actually visible (nw) Otherwise it would jump to a seemingly random position in certain cases.
* Mask address expressions in debug disasm view AJR2018-07-261-1/+2
|
* remove safe_pc() and safe_pcbase() (nw) smf-2018-04-131-2/+2
|
* don't pass so many naked pointers around (nw) Vas Crabb2018-03-251-5/+5
|
* srcclean and manual cleanups (nw) Vas Crabb2017-12-241-3/+3
| | | | | please people, remember to keep source UTF-8 and if you're committing on behalf of others, clean up indents to meet MAME conventions anyone can run srcclean over a submission and see what will get hit
* Revert "Revert "Merge branch 'master' of https://github.com/mamedev/mame"" Firehawke2017-12-131-3/+5
| | | | This reverts commit 54155441e9ba9941e85d80c4834a66376a11e791.
* Revert "Merge branch 'master' of https://github.com/mamedev/mame" Firehawke2017-12-131-5/+3
| | | | | This reverts commit f537428e5a40ba6dde8ca9bf0fe9ae6b1f189ac4, reversing changes made to 0d70d798107d4e4e8fb9f230410aeb1e888d65c5.
* Nicer autoscrolling (nw) Olivier Galibert2017-12-041-3/+5
|
* Reset m_dasm on source switch (nw) Olivier Galibert2017-11-301-0/+10
|
* Pet peeving with extreme prejudice (nw) Olivier Galibert2017-11-301-1/+1
|
* dvdisasm: Overhaul [O. Galibert] Olivier Galibert2017-11-261-328/+186
| | | | | | | | Disassemblers are now independant classes. Not only the code is cleaner, but unidasm has access to all the cpu cores again. The interface to the disassembly method has changed from byte buffers to objects that give a result to read methods. This also adds support for lfsr and/or paged PCs.
* This is too contentious, please put it up for review Vas Crabb2017-08-011-10/+7
| | | | | | Revert "Changes to debugger memory address translation" This reverts commit bb0964f9a284b15851773f5428bd602ca01cc28b.
* Changes to debugger memory address translation AJR2017-08-011-7/+10
| | | | | | - memory_translate now returns an address space number rather a boolean flag, permitting addresses in part of one space to map to an entirely different space. This is primarily intended to help MCUs which have blocks of internal memory that can be dynamically remapped, but may also allow for more accurate emulation of MMUs that drive multiple external address spaces, since the old limit of four address spaces per MAME device has been lifted. - memory_translate has also been made a const method, in spite of a couple of badly behaved CPU cores that can't honestly treat it as one. - The (read|write)_(byte|word|dword|qword|memory|opcode) accessors have been transferred from debugger_cpu to device_memory_interface, with somewhat modified arguments corresponding to the translate function it calls through to if requested.
* never hurts to srcclean (nw) Vas Crabb2017-07-091-1/+1
|
* Rename AS_DECRYPTED_OPCODES to AS_OPCODES [O. Galibert] Olivier Galibert2017-07-031-1/+1
|
* dvdisasm: Simplify by decoupling information creation and display rendering ↵ Olivier Galibert2017-06-251-96/+92
| | | | [O. Galibert]
* Changed a few 'const char *' ==> 'const std::string &' in the MAME debugger ↵ npwoods2017-06-241-1/+1
| | | | (#2170)
* Add missing disable_side_effect in find_pc_backwards (nw) Olivier Galibert2017-03-201-0/+1
|
* debugger_access: Refactor [O. Galibert] Olivier Galibert2017-03-021-0/+2
|
* Eliminated 'device_disasm_interface::disassemble(std::string &buffer, ...' Nathan Woods2016-11-201-4/+8
|
* Changed disassembler infrastructure to not use char buffers internally Nathan Woods2016-11-201-3/+3
|
* Introduce u8/u16/u32/u64/s8/s16/s32/s64 Vas Crabb2016-11-191-18/+18
| | | | | | | | | | | | * New abbreviated types are in osd and util namespaces, and also in global namespace for things that #include "emu.h" * Get rid of import of cstdint types to global namespace (C99 does this anyway) * Remove the cstdint types from everything in emu * Get rid of U64/S64 macros * Fix a bug in dps16 caused by incorrect use of macro * Fix debugcon not checking for "do " prefix case-insensitively * Fix a lot of messed up tabulation * More constexpr * Fix up many __names
* Revert "Added IS_ENABLED, so we have compiler check for non used part, it is ↵ Miodrag Milanovic2016-11-121-1/+1
| | | | | | checked but not compiled in (nw)" This reverts commit c0407f073bf7afe26407c4add5cfeaf7104913c9.
* Added IS_ENABLED, so we have compiler check for non used part, it is checked ↵ Miodrag Milanovic2016-11-111-1/+1
| | | | | | but not compiled in (nw) false and true now used instead of integer where used as bool
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-221-18/+18
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-281-1/+1
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* fix disassembly if 6809 is interrupted mid-instruction [smf] Vas Crabb2016-09-281-1/+1
|
* Revert "fix disassembly if 6809 is interrupted mid-instruction [smf]" Lord-Nightmare2016-09-271-1/+1
| | | | This reverts commit 320121823c456f6a2a9f8ba37851aa13e0ab3011.
* Revert "Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ Lord-Nightmare2016-09-271-1/+1
| | | | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]" This reverts commit 1a186c8a3a16a7ce99d7df2dd217a7552b696c92.
* Make sure all cpu's export STATE_GENPCBASE and use safe_pcbase() for ↵ smf-2016-09-271-1/+1
| | | | everything in the debugger, which allows interruptible cpu's to work properly. [smf]
* fix disassembly if 6809 is interrupted mid-instruction [smf] Vas Crabb2016-09-271-1/+1
|
* Don't need debugcpu to translate (nw) AJR2016-07-031-2/+2
|
* Consolidate disassemble functions (nw) AJR2016-07-031-2/+2
|
* Major refactoring of debugger core [Ryan Holtz] therealmogminer@gmail.com2016-06-081-9/+9
| | | | | | | | * 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
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-13/+12
|
* Iterate over devices C++11 style AJR2016-04-181-5/+4
| | | | | | Replace the old device_iterator and its specialized versions with functionally equivalent classes that use standard operators to yield references to devices/interfaces rather than pointers. With range-based for loops, they no longer have to be stored in named variables, though they can also be reused concurrently since the iteration state is now maintained by a subclass. Add a few more typical getters to device_t::subdevice_list.
* Iterate over core classes C++11 style AJR2016-03-311-2/+2
| | | | | | | | C++11 range-based for loops can now iterate over simple_list, tagged_list, core_options, device_t::subdevice_list, device_t::interface_list, render_primitive_list and all subclasses of the above, and much code has been refactored to use them. Most core classes that have these lists as members now have methods that return the lists themselves, replacing most of the methods that returned the object at an owned list's head. (A few have been retained due to their use in drivers or OSD.) device_t now manages subdevice and interface lists through subclasses, but has given up the work of adding and removing subdevices to machine_config. memory_manager has its tagged lists exposed, though the old rooted tag lookup methods have been removed (they were privatized already).
* Clear error status on persistent streams Vas Crabb2016-03-171-0/+2
|
* More stream enhancement Vas Crabb2016-03-031-4/+1
|
* Use stream with contiguous backing store for the disasmview's buffer Vas Crabb2016-03-031-26/+36
|