Fix issues in anal.trace and aei

This commit is contained in:
pancake 2015-11-05 16:45:45 +01:00
parent cc30dc5d83
commit 0b9b018aed
2 changed files with 17 additions and 9 deletions

View file

@ -1831,7 +1831,7 @@ static void cmd_anal_esil(RCore *core, const char *input) {
{
const char *pc = r_reg_get_name (core->anal->reg, R_REG_NAME_PC);
if (r_reg_getv (core->anal->reg, pc) == 0LL) {
r_core_cmd0 (core, "ar pc=$$");
r_core_cmd0 (core, "ar PC=$$");
}
}
iotrap = r_config_get_i (core->config, "esil.iotrap");
@ -1841,8 +1841,14 @@ static void cmd_anal_esil(RCore *core, const char *input) {
r_anal_esil_setup (esil, core->anal, romem, stats); // setup io
esil->debug = (int)r_config_get_i (core->config, "esil.debug");
/* restore user settings for interrupt handling */
r_config_set (core->config, "cmd.esil.intr",
r_config_get (core->config, "cmd.esil.intr"));
{
const char *s = r_config_get (core->config, "cmd.esil.intr");
if (s) {
char *my = strdup (s);
r_config_set (core->config, "cmd.esil.intr", my);
free (my);
}
}
break;
}
break;

View file

@ -200,13 +200,15 @@ static int cb_asmarch(void *user, void *data) {
r_debug_set_arch (core->dbg, node->value, bits);
if (!r_config_set (core->config, "anal.arch", node->value)) {
char *p, *s = strdup (node->value);
p = strchr (s, '.');
if (p) *p = 0;
if (!r_config_set (core->config, "anal.arch", s)) {
/* fall back to the anal.null plugin */
r_config_set (core->config, "anal.arch", "null");
if (s) {
p = strchr (s, '.');
if (p) *p = 0;
if (!r_config_set (core->config, "anal.arch", s)) {
/* fall back to the anal.null plugin */
r_config_set (core->config, "anal.arch", "null");
}
free (s);
}
free (s);
}
// set pcalign
{