--- hatari/src/debug/profile.c 2019/04/09 08:56:50 1.1.1.6 +++ hatari/src/debug/profile.c 2019/04/09 08:58:05 1.1.1.7 @@ -20,9 +20,9 @@ const char Profile_fileid[] = "Hatari pr #include "configuration.h" #include "clocks_timings.h" #include "evaluate.h" +#include "symbols.h" #include "profile.h" #include "profile_priv.h" -#include "symbols.h" profile_loop_t profile_loop; @@ -405,7 +405,7 @@ Uint32 Profile_CallEnd(callinfo_t *calli /** * Add costs to all functions still in call stack */ -void Profile_FinalizeCalls(callinfo_t *callinfo, counters_t *totalcost, const char* (*get_symbol)(Uint32 addr)) +void Profile_FinalizeCalls(callinfo_t *callinfo, counters_t *totalcost, const char* (*get_symbol)(Uint32, symtype_t)) { Uint32 addr; if (!callinfo->depth) { @@ -415,7 +415,8 @@ void Profile_FinalizeCalls(callinfo_t *c while (callinfo->depth > 0) { Profile_CallEnd(callinfo, totalcost); addr = callinfo->stack[callinfo->depth].callee_addr; - fprintf(stderr, "- 0x%x: %s (return = 0x%x)\n", addr, get_symbol(addr), + fprintf(stderr, "- 0x%x: %s (return = 0x%x)\n", + addr, get_symbol(addr, SYMTYPE_TEXT), callinfo->stack[callinfo->depth].ret_addr); } } @@ -428,7 +429,7 @@ static void Profile_ShowStack(bool forDs int i; Uint32 addr; callinfo_t *callinfo; - const char* (*get_symbol)(Uint32 addr); + const char* (*get_symbol)(Uint32, symtype_t); if (forDsp) { Profile_DspGetCallinfo(&callinfo, &get_symbol); @@ -442,8 +443,9 @@ static void Profile_ShowStack(bool forDs for (i = 0; i < callinfo->depth; i++) { addr = callinfo->stack[i].callee_addr; - fprintf(stderr, "- 0x%x: %s (return = 0x%x)\n", addr, - get_symbol(addr), callinfo->stack[i].ret_addr); + fprintf(stderr, "- 0x%x: %s (return = 0x%x)\n", + addr, get_symbol(addr, SYMTYPE_TEXT), + callinfo->stack[i].ret_addr); } } @@ -570,7 +572,7 @@ static bool Profile_Save(const char *fna freq = MachineClocks.DSP_Freq; proc = "DSP"; } else { - freq = MachineClocks.CPU_Freq; + freq = MachineClocks.CPU_Freq_Emul; proc = "CPU"; } #if ENABLE_WINUAE_CPU @@ -643,6 +645,8 @@ static bool Profile_Loops(int nArgc, cha profile_loop.filename = NULL; fclose(profile_loop.fp); profile_loop.fp = NULL; + } else { + fprintf(stderr, "ERROR: no file name for saving the loop profiling information.\n"); } } return true; @@ -678,9 +682,9 @@ int Profile_Command(int nArgc, char *psA lower = *disasm_addr; } if (bForDsp) { - *disasm_addr = Profile_DspShowAddresses(lower, upper, stdout); + *disasm_addr = Profile_DspShowAddresses(lower, upper, stdout, PAGING_ENABLED); } else { - *disasm_addr = Profile_CpuShowAddresses(lower, upper, stdout); + *disasm_addr = Profile_CpuShowAddresses(lower, upper, stdout, PAGING_ENABLED); } return DEBUGGER_CMDCONT;