| Previous | 199869 Revisions | Next |
| r33942 Thursday 18th December, 2014 at 07:27:14 UTC by Fabrice Bellet |
|---|
| debug: better handling of duplicate memory access 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. |
| [src/emu/debug] | debugcpu.c debugcpu.h |
| r242453 | r242454 | |
|---|---|---|
| 1995 | 1995 | if (m_track_mem) |
| 1996 | 1996 | { |
| 1997 | 1997 | dasm_memory_access newAccess(space.spacenum(), address, data, history_pc(0)); |
| 1998 | if (!m_track_mem_set.insert(newAccess)) | |
| 1999 | { | |
| 2000 | m_track_mem_set.remove(newAccess); | |
| 1998 | dasm_memory_access* trackedAccess = m_track_mem_set.find(newAccess); | |
| 1999 | if (trackedAccess) | |
| 2000 | trackedAccess->m_pc = newAccess.m_pc; | |
| 2001 | else | |
| 2001 | 2002 | m_track_mem_set.insert(newAccess); |
| 2002 | } | |
| 2003 | 2003 | } |
| 2004 | 2004 | watchpoint_check(space, WATCHPOINT_WRITE, address, data, mem_mask); |
| 2005 | 2005 | } |
| r242453 | r242454 | |
|---|---|---|
| 418 | 418 | { |
| 419 | 419 | if ((m_address == rhs.m_address) && (m_address_space == rhs.m_address_space)) |
| 420 | 420 | return m_data < rhs.m_data; |
| 421 | return (m_address < rhs.m_address) && (m_address_space == rhs.m_address_space); | |
| 421 | else if (m_address_space == rhs.m_address_space) | |
| 422 | return m_address < rhs.m_address; | |
| 423 | else | |
| 424 | return m_address_space < rhs.m_address_space; | |
| 422 | 425 | } |
| 423 | 426 | |
| 424 | 427 | // Stores the PC for a given address, memory region, and data value |
| https://github.com/mamedev/mame/commit/d77c58794b44f88d00b894b9dda77b08c3f6b1b5 |
| Previous | 199869 Revisions | Next |