summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/debug/debugcmd.cpp
diff options
context:
space:
mode:
author andreasnaive <andreasnaive@gmail.com>2019-03-25 22:44:58 +0100
committer andreasnaive <andreasnaive@gmail.com>2019-03-25 22:44:58 +0100
commitc24473ddff715ecec2e258a6eb38960cf8c8e98e (patch)
tree8ea44b6396a6129913c0aac13859b5de9965e972 /src/emu/debug/debugcmd.cpp
parent009cba4fb8102102168ef32870892438327f3705 (diff)
parent598cd5227223c3b04ca31f0dbc1981256d9ea3ff (diff)
conflict resolution (nw)
Diffstat (limited to 'src/emu/debug/debugcmd.cpp')
-rw-r--r--src/emu/debug/debugcmd.cpp27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/emu/debug/debugcmd.cpp b/src/emu/debug/debugcmd.cpp
index 05fb6acbddd..66bc8578464 100644
--- a/src/emu/debug/debugcmd.cpp
+++ b/src/emu/debug/debugcmd.cpp
@@ -21,6 +21,7 @@
#include "natkeyboard.h"
#include "render.h"
#include <ctype.h>
+#include <algorithm>
#include <fstream>
@@ -460,12 +461,17 @@ bool debugger_commands::validate_cpu_parameter(const char *param, device_t *&res
return false;
}
- /* if we got a valid one, return */
- device_execute_interface *exec = execute_interface_iterator(m_machine.root_device()).byindex(cpunum);
- if (exec != nullptr)
+ // attempt to find by numerical index
+ int index = 0;
+ for (device_execute_interface &exec : execute_interface_iterator(m_machine.root_device()))
{
- result = &exec->device();
- return true;
+ // real CPUs should have pcbase
+ const device_state_interface *state;
+ if (exec.device().interface(state) && state->state_find_entry(STATE_GENPCBASE) != nullptr && index++ == cpunum)
+ {
+ result = &exec.device();
+ return true;
+ }
}
/* if out of range, complain */
@@ -3215,13 +3221,6 @@ void debugger_commands::execute_memdump(int ref, const std::vector<std::string>
execute_symlist - execute the symlist command
-------------------------------------------------*/
-static int CLIB_DECL symbol_sort_compare(const void *item1, const void *item2)
-{
- const char *str1 = *(const char **)item1;
- const char *str2 = *(const char **)item2;
- return strcmp(str1, str2);
-}
-
void debugger_commands::execute_symlist(int ref, const std::vector<std::string> &params)
{
device_t *cpu = nullptr;
@@ -3257,7 +3256,9 @@ void debugger_commands::execute_symlist(int ref, const std::vector<std::string>
/* sort the symbols */
if (count > 1)
- qsort((void *)namelist, count, sizeof(namelist[0]), symbol_sort_compare);
+ std::sort(&namelist[0], &namelist[count], [](const char *item1, const char *item2) {
+ return strcmp(item1, item2) < 0;
+ });
/* iterate over symbols and print out relevant ones */
for (symnum = 0; symnum < count; symnum++)