summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcpu.h
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup and version bumpmame0175 Miodrag Milanovic2016-06-291-20/+19
|
* Eliminate some unnecessary pass-through methods from debugcpu (nw) AJR2016-06-221-6/+1
|
* small debugger cleanup (nw) Miodrag Milanovic2016-06-171-2/+1
|
* Major refactoring of debugger core [Ryan Holtz] therealmogminer@gmail.com2016-06-081-56/+139
| | | | | | | | * 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
* Added comlist comment to debugger [Angelo Salese] angelosa2016-06-041-2/+2
| | | | Added notes wrt dangarj protection, nw
* Move more things to type-safe printf Vas Crabb2016-03-011-1/+7
|
* some handmade changes (nw) Miodrag Milanovic2015-12-211-1/+1
|
* clang-modernize part 1 (nw) Miodrag Milanovic2015-12-031-12/+12
|
* memory: Remove support for decrypted bases, use an address space instead [O. ↵ Olivier Galibert2015-06-241-1/+1
| | | | Galibert]
* Cleanups and version bumpmame0161 Miodrag Milanovic2015-04-291-1/+1
|
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-6/+6
|
* Replace dynamic_array with std::vector [O. Galibert] Olivier Galibert2015-04-141-2/+2
|
* There is no implicit conversion to char* in std::string (nw) Miodrag Milanovic2015-04-121-3/+3
|
* Replace simple_set with std::set Vas Crabb2015-04-111-8/+9
|
* debug: better handling of duplicate memory access Fabrice Bellet2014-12-181-1/+4
| | | | | | Don't remove and reinsert nodes that correspond to a duplicate memory access, because tree rebalancing kills performances. Update the node's element content instead.
* Fix various typos Zoë Blade2014-11-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Squashed commit of the following: commit 040fd169bfd6845b33d3f86fd66afb4a632605c6 Author: Zoë Blade <zoe@bytenoise.co.uk> Date: Sun Nov 30 22:24:30 2014 +0000 Fix more typos in comments commit 6121ae593008a574735427e047fdb7a16f4fa47f Author: Zoë Blade <zoe@bytenoise.co.uk> Date: Sun Nov 30 22:20:37 2014 +0000 Fix more typos Not all are in comments this time, but the vast majority are, and the rest are in printed text. None are variable or constant names. commit 84bc72573009bb46f5601f7257a7f7538f25cfc2 Author: Zoë Blade <zoe@bytenoise.co.uk> Date: Sun Nov 30 22:01:46 2014 +0000 Fix some typos
* more passing of attotime as const references (nw) Oliver Stöneberg2014-07-041-1/+1
|
* Nuke some more auto_allocs. Aaron Giles2014-03-161-0/+3
|
* rest of ATTR_PRINTF review (nw) Oliver Stöneberg2014-02-251-2/+2
|
* Another round of auto_alloc_array conversions. Aaron Giles2014-02-201-2/+1
| | | | | Some minor enhancements to dynamic_array, including clearing to specific values and expanding and clearing newly allocated values.
* Bulk convert files that already had standard BSD license in my name Aaron Giles2013-10-161-31/+2
| | | | to new license tagged form.
* Cleanups and version bumpmame0150 Miodrag Milanovic2013-09-171-13/+13
|
* Adds a watchpoint debug view. [Andrew Gardner] Andrew Gardner2013-07-261-22/+28
|
* Cleanups and version bumpmame0149u1 Miodrag Milanovic2013-07-231-14/+14
|
* QT Debugger: Finished up the breakpoints window. [Andrew Gardner] Andrew Gardner2013-06-121-8/+27
| | | | | | It now shows breakpoints for all CPUs and lets you sort by each field.
* Cleanups and version bumpmame0148u5 Miodrag Milanovic2013-05-201-5/+5
|
* Adds memory tracking to debugger. This includes two new commands: trackmem and Andrew Gardner2013-05-091-7/+40
| | | | | | | | | | | | | | | | | | pcatmem(p|d|i). [Andrew Gardner] Fixes left-click selection bug in the memory window. [Andrew Gardner] Explanation: ------------ Call trackmem to start tracking which PC writes to which address in memory and pcatmem(p|d|i) to query a memory region for which PC wrote to it. Users of the QT debugger can also right click on a memory address in the memory window to make a popup message appear with the results - right-clicking also automatically copies the resultant PC onto the clipboard. (I'll attach an image of this behavior in a follow-up mail).
* QT Debugger: Adds trackpc command, allowing for a visual display of where the Andrew Gardner2013-04-201-19/+32
| | | | | | | | | | | | | | | | | | | | program counter has visited in the dasm windows. Run "help trackpc" in the debugger to see the options. [Andrew Gardner] Out of whatsnew: This isn't enabled by default because of how sloooow it is to disassemble each opcode when you want to compute its crc32. That can be sped up with lookup tables and the like. There's a good chance I should pull the 'clear tracks' argument into its own command, but it functions as-is. This can be added to the windows debugger with a simple change to the osd display code.
* Adds simple_set data structure and hooked it up to the debugger comment system. Andrew Gardner2013-04-131-9/+16
| | | | | [Andrew Gardner]
* Cleanups and version bumpmame0148u2 Miodrag Milanovic2013-03-191-2/+2
|
* Debugger: [Wilbert Pol] Wilbert Pol2013-03-111-0/+36
| | | | | | - Added support for registerpoints. - Added 'exit' as a synonym for 'quit'.
* Added a new 'lastinstructioncycles' property to the debugger to measure the Nathan Woods2013-02-171-0/+3
| | | | | | amount of CPU cycles taken by the last instruction. This is useful to people (me) who are rewriting CPU cores, specifically with regression testing.
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-84/+84
|
* Since nobody checks for NULLs anyway, make Aaron Giles2012-09-191-1/+1
| | | | | | | | | | | | device_memory_interface::space() assert against NULL and return a reference, and pushed references throughout all address space usage in the system. Added a has_space() method to check for those rare case when it is ambiguous. [Aaron Giles] Also reinstated the generic space and added fatal error handlers if anyone tries to actually read/write from it.
* Memory handler normalization, part 2. Change legacy Aaron Giles2012-09-171-12/+12
| | | | | | | read/write handlers to take an address_space & instead of an address_space *. Also update pretty much all other functions to take a reference where appropriate. [Aaron Giles]
* First pass at modernizing struct definitions. Aaron Giles2012-09-151-1/+1
|
* Adding "totalcycles" debugger variable Nathan Woods2011-12-291-0/+1
|
* BIG update. Aaron Giles2011-03-291-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove redundant machine items from address_space and device_t. Neither machine nor m_machine are directly accessible anymore. Instead a new getter machine() is available which returns a machine reference. So: space->machine->xxx ==> space->machine().xxx device->machine->yyy ==> device->machine().yyy Globally changed all running_machine pointers to running_machine references. Any function/method that takes a running_machine takes it as a required parameter (1 or 2 exceptions). Being consistent here gets rid of a lot of odd &machine or *machine, but it does mean a very large bulk change across the project. Structs which have a running_machine * now have that variable renamed to m_machine, and now have a shiny new machine() method that works like the space and device methods above. Since most of these are things that should eventually be devices anyway, consider this a step in that direction. 98% of the update was done with regex searches. The changes are architected such that the compiler will catch the remaining errors: // find things that use an embedded machine directly and replace // with a machine() getter call S: ->machine-> R: ->machine\(\)\. // do the same if via a reference S: \.machine-> R: \.machine\(\)\. // convert function parameters to running_machine & S: running_machine \*machine([^;]) R: running_machine \&machine\1 // replace machine-> with machine. S: machine-> R: machine\. // replace &machine() with machine() S: \&([()->a-z0-9_]+machine\(\)) R: \1 // sanity check: look for this used as a cast (running_machine &) // and change to this: *(running_machine *)
* Created new enum type address_spacenum for specifying an address Aaron Giles2011-03-271-2/+2
| | | | | | | | | | | | space by index. Update functions and methods that accepted an address space index to take an address_spacenum instead. Note that this means you can't use a raw integer in ADDRESS_SPACE macros, so instead of 0 use the enumerated AS_0. Standardized the project on the shortened constants AS_* over the older ADDRESS_SPACE_*. Removed the latter to prevent confusion. Also centralized the location of these definitions to memory.h.
* Cleanups and version bump.mame0141u2 Aaron Giles2011-02-091-1/+1
|
* Make "run to next CPU" more reliable. Aaron Giles2011-02-091-2/+1
|
* Cleanup & version bump.mame0140u1 Aaron Giles2010-11-081-1/+1
|
* Converted the expression engine to C++, did the usual cleanup. Aaron Giles2010-11-011-26/+17
|
* Cleanups and version bump.mame0139u3 Aaron Giles2010-09-191-4/+4
|
* Integrated comments into debugcpu.c, and removed debugcmt.c. Modernized Aaron Giles2010-09-051-7/+44
| | | | the code and updated so it actually works with the modern debug classes.
* Have each device create its own device_debug instead of letting the Aaron Giles2010-09-041-1/+1
| | | | | | | debugger do it. This allows the device to start itself up before the debugger tries to figure out what to do with it. Fixes the problem where register names were not populated into the symbol table correctly after I shuffled the initialization order.
* Replace "const address_space" with "address_space" throughout the system. Aaron Giles2010-08-191-22/+22
| | | | | | | | | | | The purpose of making it const before was to discourage direct tampering, but private/protected does a better job of that now anyhow, and it is annoying now. s/const[ \t]+address_space\b/address_space/g; Is basically what I did.
* Massive memory system change. This is another step along the path toward Aaron Giles2010-08-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | supporting cleaner implementations of drivers in the explicitly OO world. Expect a follow-on of several more changes to clean up from this one, which deliberately tried to avoid touching much driver code. Converted address_space to a class, and moved most members behind accessor methods, apart from space->machine and space->cpu. Removed external references to 8le/8be/16le/16be/32le/32be/64le/64be. All external access is now done via virtual functions read_byte()/read_word()/etc. Moved differentiation between the endianness and the bus width internal to memory.c, and also added a new axis to support small/large address spaces, which allows for faster lookups on spaces smaller than 18 bits. Provided methods for most global memory operations within the new address_space class. These will be bulk converted in a future update, but for now there are inline wrappers to hide this change from existing callers. Created new module delegate.h which implements C++ delegates in a form that works for MAME. Details are in the opening comment. Delegates allow member functions of certain classes to be used as callbacks, which will hopefully be the beginning of the end of fetching the driver_data field in most callbacks. All classes that host delegates must derive from bindable_object. Today, all devices and driver_data do implicitly via their base class. Defined delegates for read/write handlers. The new delegates are always passed an address_space reference, along with offset, data, and mask. Delegates can refer to methods either in the driver_data class or in a device class. To specify a callback in an address map, just use AM_READ_MEMBER(class, member). In fact, all existing AM_ macros that take read/write handlers can now accept delegates in their place. Delegates that are specified in an address map are proto-delegates which have no object; they are bound to their object when the corresponding address_space is created. Added machine->m_nonspecific_space which can be passed as the required address_space parameter to the new read/write methods in legacy situations where the space is not provided. Eventually this can go away but we will need it for a while yet. Added methods to the new address_space class to dynamically install delegates just like you can dynamically install handlers today. Delegates installed this way must be pre-bound to their object. Moved beathead's read/write handlers into members of beathead_state as an example of using the new delegates. This provides examples of both static (via an address_map) and dynamic (via install_handler calls) mapping using delegates. Added read/write member functions to okim6295_device as an example of using delegates to call devices. Updated audio/williams.c as a single example of calling the device via its member function callbacks. These will be bulk updated in a future update, and the old global callbacks removed. Changed the DIRECT_UPDATE_CALLBACKs into delegates as well. Updated all users to the new function format. Added methods on direct_read_data for configuring the parameters in a standard way to make the implementation clearer. Created a simple_list template container class for managing the common singly-linked lists we use all over in the project. Many other internal changes in memory.c, mostly involving restructuring the code into proper classes.
* Cleanups and version bump.mame0138u3 Aaron Giles2010-07-061-14/+14
|
* Cleanup debugger interface some more. Aaron Giles2010-07-061-193/+256
|