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

trunk/src/emu/debug/debugcpu.c
r242453r242454
19951995   if (m_track_mem)
19961996   {
19971997      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
20012002         m_track_mem_set.insert(newAccess);
2002      }
20032003   }
20042004   watchpoint_check(space, WATCHPOINT_WRITE, address, data, mem_mask);
20052005}
trunk/src/emu/debug/debugcpu.h
r242453r242454
418418      {
419419         if ((m_address == rhs.m_address) && (m_address_space == rhs.m_address_space))
420420            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;
422425      }
423426
424427      // Stores the PC for a given address, memory region, and data value


Previous 199869 Revisions Next


© 1997-2024 The MAME Team