diff options
Diffstat (limited to 'src/analysis')
| -rw-r--r-- | src/analysis/binary.c | 14 | ||||
| -rw-r--r-- | src/analysis/line_code.c | 19 | ||||
| -rw-r--r-- | src/analysis/line_comment.c | 19 | ||||
| -rw-r--r-- | src/analysis/prototype.c | 19 | ||||
| -rw-r--r-- | src/analysis/prototype.h | 3 | 
5 files changed, 61 insertions, 13 deletions
| diff --git a/src/analysis/binary.c b/src/analysis/binary.c index 88201ac..01ccfdd 100644 --- a/src/analysis/binary.c +++ b/src/analysis/binary.c @@ -39,6 +39,7 @@  #include "line_comment.h"  #include "line_prologue.h"  #include "prototype.h" +#include "../panel/log.h"  #include "../plugins/pglist.h" @@ -117,23 +118,22 @@ openida_binary *load_binary_file(const char *filename)      switch (get_exe_target_machine(result->format))      {          case FTM_JVM: -            result->proc = get_arch_processor_for_type(APT_JVM); +            log_simple_message(LMT_INFO, _("Detected architecture: Java Virtual Machine"));              break; -          case FTM_MIPS: -            result->proc = get_arch_processor_for_type(APT_MIPS); +            log_simple_message(LMT_INFO, _("Detected architecture: Microprocessor without Interlocked Pipeline Stages"));              break; -          case FTM_386: -            result->proc = get_arch_processor_for_type(APT_386); +            log_simple_message(LMT_INFO, _("Detected architecture: i386"));              break; -          default: +            log_simple_message(LMT_INFO, _("Unknown architecture"));              goto lbf_error;              break; -      } +    result->proc = get_arch_processor_from_format(result->format); +      result->options.show_address = true;      result->options.show_code = true; diff --git a/src/analysis/line_code.c b/src/analysis/line_code.c index a234055..cd7eba6 100644 --- a/src/analysis/line_code.c +++ b/src/analysis/line_code.c @@ -174,15 +174,28 @@ void g_code_line_refresh_markup(GCodeLine *line)      if (line->options->show_address)      { -        switch (ADM_32BITS  /* FIXME */) +        switch (g_arch_processor_get_memory_size(line->options->proc))          { -            case ADM_32BITS: +            case MDS_8_BITS: +                snprintf(buffer, CODE_BUFFER_LEN, +                         "<span foreground='#333333'>0x%02llx</span>", +                         G_RENDERING_LINE(line)->offset); +                break; + +            case MDS_16_BITS: +                snprintf(buffer, CODE_BUFFER_LEN, +                         "<span foreground='#333333'>0x%04llx</span>", +                         G_RENDERING_LINE(line)->offset); +                break; + +            case MDS_32_BITS:                  snprintf(buffer, CODE_BUFFER_LEN,                           "<span foreground='#333333'>0x%08llx</span>",                           G_RENDERING_LINE(line)->offset);                  break; -            case ADM_64BITS: +            default: +            case MDS_64_BITS:                  snprintf(buffer, CODE_BUFFER_LEN,                           "<span foreground='#333333'>0x%16llx</span>",                           G_RENDERING_LINE(line)->offset); diff --git a/src/analysis/line_comment.c b/src/analysis/line_comment.c index ea6d6d6..1d37613 100644 --- a/src/analysis/line_comment.c +++ b/src/analysis/line_comment.c @@ -137,15 +137,28 @@ void g_comment_line_refresh_markup(GCommentLine *line)      if (line->options->show_address)      { -        switch (ADM_32BITS  /* FIXME */) +        switch (g_arch_processor_get_memory_size(line->options->proc))          { -            case ADM_32BITS: +            case MDS_8_BITS: +                snprintf(buffer, CODE_BUFFER_LEN, +                         "<span foreground='#333333'>0x%02llx</span>", +                         G_RENDERING_LINE(line)->offset); +                break; + +            case MDS_16_BITS: +                snprintf(buffer, CODE_BUFFER_LEN, +                         "<span foreground='#333333'>0x%04llx</span>", +                         G_RENDERING_LINE(line)->offset); +                break; + +            case MDS_32_BITS:                  snprintf(buffer, CODE_BUFFER_LEN,                           "<span foreground='#333333'>0x%08llx</span>",                           G_RENDERING_LINE(line)->offset);                  break; -            case ADM_64BITS: +            default: +            case MDS_64_BITS:                  snprintf(buffer, CODE_BUFFER_LEN,                           "<span foreground='#333333'>0x%16llx</span>",                           G_RENDERING_LINE(line)->offset); diff --git a/src/analysis/prototype.c b/src/analysis/prototype.c index 1e27f2c..78854f9 100644 --- a/src/analysis/prototype.c +++ b/src/analysis/prototype.c @@ -245,6 +245,25 @@ void g_binary_routine_set_name(GBinRoutine *routine, char *name)  /******************************************************************************  *                                                                             *  *  Paramètres  : routine = routine à mettre à jour.                           * +*                                                                             * +*  Description : Fournit le nom humain d'une routine.                         * +*                                                                             * +*  Retour      : Désignation humainement lisible ou NULL si non définie.      * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +const char *g_binary_routine_get_name(const GBinRoutine *routine) +{ +    return routine->name; + +} + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : routine = routine à mettre à jour.                           *  *                var     = variable représentant un type de retour.           *  *                                                                             *  *  Description : Définit le type de retour d'une routine.                     * diff --git a/src/analysis/prototype.h b/src/analysis/prototype.h index 3fd822e..299cce6 100644 --- a/src/analysis/prototype.h +++ b/src/analysis/prototype.h @@ -75,6 +75,9 @@ void g_binary_routine_set_type(GBinRoutine *, RoutineType);  /* Définit le nom humain d'une routine. */  void g_binary_routine_set_name(GBinRoutine *, char *); +/* Désignation humainement lisible ou NULL si non définie. */ +const char *g_binary_routine_get_name(const GBinRoutine *); +  /* Définit le type de retour d'une routine. */  void g_binary_routine_set_return_type(GBinRoutine *, variable *); | 
