summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcpu.c
Commit message (Collapse)AuthorAgeFilesLines
* memory: Remove support for decrypted bases, use an address space instead [O. ↵ Olivier Galibert2015-06-241-22/+18
| | | | Galibert]
* moved all to std::string (nw) Miodrag Milanovic2015-04-221-19/+21
|
* removed bool conversion and implicit empty check (nw) Miodrag Milanovic2015-04-191-4/+4
|
* Replace dynamic_array with std::vector [O. Galibert] Olivier Galibert2015-04-141-9/+10
|
* There is no implicit conversion to char* in std::string (nw) Miodrag Milanovic2015-04-121-9/+9
|
* Merge branch 'master' of https://github.com/mamedev/mame Miodrag Milanovic2015-04-111-28/+26
|\
| * Replace simple_set with std::set Vas Crabb2015-04-111-28/+26
| |
* | cstr() - > c_str() as preparation for move to std::string (nw) Miodrag Milanovic2015-04-111-2/+2
|/
* debug: reverted dasm window change. (nw) Robert2014-12-241-1/+1
|
* debug: better handling of duplicate memory access Fabrice Bellet2014-12-181-4/+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.
* debug: dont update asm view in the start_hook() Fabrice Bellet2014-12-181-1/+1
| | | | | | The curpc can be in the middle of an instruction being decoded, so it is not pertinent to recompute the disassembly starting from this address.
* Touching all the candy again: [Alex Jackson] Alex W. Jackson2014-11-171-2/+2
| | | | | | | | | | | | | | | | Fixed an annoying inconsistency between memory_share and memory_region: the width() method of the former returned the width in bits (8, 16, 32 or 64) while the width() method of the latter returned the width in bytes (1, 2, 4 or 8). Now both classes have a bitwidth() method and a bytewidth() method. Updated all callers to use whichever one was more appropriate. Removed the implicit-cast-to-any-integer-pointer ability of memory_regions, which was rather unsafe (if you weren't careful with your * operators and casts it was easy to accidentally get a pointer to the memory_region object itself instead of to the data, with no warning from the compiler... or at least I kept doing it) Updated all devices and drivers that were accessing regions that way to use a region_ptr_finder when possible, and otherwise to call base() explicitly.
* Cleanups and version bumpmame0155 Miodrag Milanovic2014-10-151-1/+1
|
* fixed most of the -Wunreachable-code-break and -Wunreachable-code-return ↵ Oliver Stöneberg2014-09-081-1/+0
| | | | warnings of clang 3.5 when compiling MESS (nw)
* Do web serving in main thread (nw) Miodrag Milanovic2014-09-081-0/+2
|
* more passing of attotime as const references (nw) Oliver Stöneberg2014-07-041-1/+1
|
* m68000: Do what the real M68K does on byte writes. Fix the debugger so ↵ Alex W. Jackson2014-05-301-0/+12
| | | | watchpoints continue to work as expected [Alex Jackson]
* -Reorganized OSD, handling more sound output systems and debuggers, defaults ↵ Miodrag Milanovic2014-05-081-3/+0
| | | | | | left same as before [Miodrag Milanovic] -Created osd_options as base option class for non-system specific options
* primary_screen -> first_screen() (nw) Miodrag Milanovic2014-03-151-2/+2
|
* Another round of auto_alloc_array conversions. Aaron Giles2014-02-201-13/+8
| | | | | 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-29/+29
|
* Adds a watchpoint debug view. [Andrew Gardner] Andrew Gardner2013-07-261-22/+31
|
* Cleanups and version bumpmame0149u1 Miodrag Milanovic2013-07-231-12/+12
|
* QT Debugger: Finished up the breakpoints window. [Andrew Gardner] Andrew Gardner2013-06-121-8/+14
| | | | | | It now shows breakpoints for all CPUs and lets you sort by each field.
* Cleanups and version bumpmame0148u5 Miodrag Milanovic2013-05-201-14/+14
|
* Adds memory tracking to debugger. This includes two new commands: trackmem and Andrew Gardner2013-05-091-5/+50
| | | | | | | | | | | | | | | | | | 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).
* Cleanups and version bumpmame0148u4 Miodrag Milanovic2013-04-301-4/+4
|
* QT Debugger: Adds trackpc command, allowing for a visual display of where the Andrew Gardner2013-04-201-45/+91
| | | | | | | | | | | | | | | | | | | | 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-89/+18
| | | | | [Andrew Gardner]
* Fix visual studio compile. (nw) Andrew Gardner2013-04-031-3/+5
|
* QT Debugger: The memory view chunk size radio now reports proper sizes. Andrew Gardner2013-04-021-16/+10
| | | | | | | Fixed "ignore" command reporting incorrect invalid CPUs. Fixed crazy code responsible for opcodes' crc32s in the comments system (what was I thinking back then?). [Andrew Gardner]
* Debugger: [Wilbert Pol] Wilbert Pol2013-03-111-0/+175
| | | | | | - 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-1/+21
| | | | | | amount of CPU cycles taken by the last instruction. This is useful to people (me) who are rewriting CPU cores, specifically with regression testing.
* fixed crash with -debug when image loading failed (nw) Oliver Stöneberg2013-02-121-1/+1
|
* Cleanups and version bumpmame0148 Miodrag Milanovic2013-01-111-71/+71
|
* Fix GCC 4.4 compile (no whatsnew) mahlemiut2012-09-201-4/+4
|
* Since nobody checks for NULLs anyway, make Aaron Giles2012-09-191-30/+36
| | | | | | | | | | | | 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-212/+192
| | | | | | | 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-2/+1
|
* In device_state_interface, rename state() to state_int() Aaron Giles2012-09-111-2/+2
| | | | | | | | | | | | | | | and set_state() to set_state_int() for consistency. Update all callers. Also add set_pc() helper and updated all callers to use that instead of set_state_int(STATE_GENPC) [Aaron Giles] Added device_t::state() method to get the state interface. Added redundant device_state_interface::state() method to catch redundant use of it. [Aaron Giles] Removed cpu_get_reg() and cpu_set_reg() macros in favor of using the above methods. [Aaron Giles]
* added missing \n to some more fatalerror() calls (no whatsnew) Oliver Stöneberg2012-09-081-2/+2
|
* removed some astring::stringbuffer() usage - fixes potential missing \0 ↵ Oliver Stöneberg2012-09-071-1/+5
| | | | termination (no whatsnew)
* Changed device->subregion to device->memregion. Moved Aaron Giles2012-04-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | memory_region management into the memory manager instead of directly in the machine. Hid the global region method; now all regions must be looked up relative to a device. If you're a member function, you can just use memregion("tag") directly. If you're a global function or a device referencing global regions, use machine().root_device().memregion("tag") to look up regions relative to the root. S&R to convert all references: machine([()]*)\.region machine\1\.root_device\(\).subregion Then remove redundant machine().root_device() within src/mame: ([ \t])machine\(\)\.root_device\(\)\. \1 And use state->memregion() if we have a state variable present: (state *= *[^;]+driver_data[^}]+)([^ \t]*)machine[()]*\.root_device\(\)\. \1state-> Finally some cleanup: screen.state-> state-> device->state-> state-> space->state-> state-> And a few hand-tweaks.
* Fixed device search in the debugger to work like a normal Aaron Giles2012-02-041-6/+4
| | | | device search.
* Undo last change, it is unnecessary. Cheat problems must lie elsewhere. Aaron Giles2012-02-041-10/+0
|
* Root colons not required by default in the debugger for region Aaron Giles2012-02-041-0/+10
| | | | lookups. Should address cheat expressions as well.
* Sync with MESS, including OG's fix for exiting with debugger active (no ↵ Miodrag Milanovic2012-01-261-0/+4
| | | | whatsnew)
* Move devices into a proper hierarchy and handle naming Aaron Giles2012-01-241-15/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and paths consistently for devices, I/O ports, memory regions, memory banks, and memory shares. [Aaron Giles] NOTE: there are likely regressions lurking here, mostly due to devices not being properly found. I have temporarily added more logging to -verbose to help understand what's going on. Please let me know ASAP if anything that is being actively worked on got broken. As before, the driver device is the root device and all other devices are owned by it. Previously all devices were kept in a single master list, and the hierarchy was purely logical. With this change, each device owns its own list of subdevices, and the hierarchy is explicitly manifest. This means when a device is removed, all of its subdevices are automatically removed as well. A side effect of this is that walking the device list is no longer simple. To address this, a new set of iterator classes is provided, which walks the device tree in a depth first manner. There is a general device_iterator class for walking all devices, plus templates for a device_type_iterator and a device_interface_iterator which are used to build iterators for identifying only devices of a given type or with a given interface. Typedefs for commonly-used cases (e.g., screen_device_iterator, memory_interface_iterator) are provided. Iterators can also provide counts, and can perform indexed lookups. All device name lookups are now done relative to another device. The maching_config and running_machine classes now have a root_device() method to get the root of the hierarchy. The existing machine->device("name") is now equivalent to machine->root_device().subdevice("name"). A proper and normalized device path structure is now supported. Device names that start with a colon are treated as absolute paths from the root device. Device names can also use a caret (^) to refer to the owning device. Querying the device's tag() returns the device's full path from the root. A new method basetag() returns just the final tag. The new pathing system is built on top of the device_t::subtag() method, so anyone using that will automatically support the new pathing rules. Each device has its own internal map to cache successful lookups so that subsequent lookups should be very fast. Updated every place I could find that referenced devices, memory regions, I/O ports, memory banks and memory shares to leverage subtag/subdevice (or siblingtag/siblingdevice which are built on top). Removed the device_list class, as it doesn't apply any more. Moved some of its methods into running_machine instead. Simplified the device callback system since the new pathing can describe all of the special-case devices that were previously handled manually. Changed the core output function callbacks to be delegates. Completely rewrote the validity checking mechanism. The validity checker is now a proper C++ class, and temporarily takes over the error and warning outputs. All errors and warnings are collected during a session, and then output in a consistent manner, with an explicit driver and source file listed for each one, as well as additional device and/or I/O port contexts where appropriate. Validity checkers should no longer explicitly output this information, just the error, assuming that the context is provided. Rewrote the software_list_device as a modern device, getting rid of the software_list_config abstraction and simplifying things. Changed the way FLAC compiles so that it works like other external libraries, and also compiles successfully for MSVC builds.
* Removed old C-based interface to astrings. astring exists only as Aaron Giles2012-01-031-6/+2
| | | | | | a class now. Updated all stragglers (mostly tools) to use the class form. [Aaron Giles]