diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Makefile.am | 1 | ||||
| -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 | ||||
| -rw-r--r-- | src/arch/jvm/processor.c | 1 | ||||
| -rw-r--r-- | src/arch/mips/processor.c | 1 | ||||
| -rw-r--r-- | src/arch/processor-int.h | 1 | ||||
| -rw-r--r-- | src/arch/processor.c | 60 | ||||
| -rw-r--r-- | src/arch/processor.h | 29 | ||||
| -rw-r--r-- | src/arch/x86/processor.c | 1 | ||||
| -rw-r--r-- | src/editor.c | 12 | ||||
| -rw-r--r-- | src/format/exe_format.c | 20 | ||||
| -rw-r--r-- | src/gtkext/gtksnippet.h | 2 | ||||
| -rwxr-xr-x | src/panel/Makefile.am | 3 | ||||
| -rw-r--r-- | src/panel/log.c | 7 | ||||
| -rw-r--r-- | src/panel/panels.c | 8 | ||||
| -rw-r--r-- | src/panel/panels.h | 3 | ||||
| -rw-r--r-- | src/panel/symbols.c (renamed from src/pan_symbols.c) | 68 | ||||
| -rw-r--r-- | src/panel/symbols.h (renamed from src/pan_symbols.h) | 4 | 
21 files changed, 195 insertions, 100 deletions
| diff --git a/src/Makefile.am b/src/Makefile.am index dd5d1ea..c47f5e7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -64,7 +64,6 @@ openida_SOURCES = 						\  	dlg_sections.h dlg_sections.c		\  	editor.c							\  	pan_strings.h pan_strings.c			\ -	pan_symbols.h pan_symbols.c			\  	project.h project.c					\  	shell.h shell.c						\  	xdg.h xdg.c							\ 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 *); diff --git a/src/arch/jvm/processor.c b/src/arch/jvm/processor.c index 8226afc..034b864 100644 --- a/src/arch/jvm/processor.c +++ b/src/arch/jvm/processor.c @@ -98,6 +98,7 @@ static void g_jvm_processor_init(GJvmProcessor *proc)      parent = G_ARCH_PROCESSOR(proc);      parent->endianness = SRE_BIG; +    parent->memsize = MDS_32_BITS;      parent->decode = (decode_instruction_fc)g_jvm_processor_decode_instruction; diff --git a/src/arch/mips/processor.c b/src/arch/mips/processor.c index c28c7b4..7e921c1 100644 --- a/src/arch/mips/processor.c +++ b/src/arch/mips/processor.c @@ -97,6 +97,7 @@ static void g_mips_processor_init(GMipsProcessor *proc)      parent = G_ARCH_PROCESSOR(proc);      parent->endianness = SRE_BIG; +    parent->memsize = MDS_32_BITS;      parent->decode = (decode_instruction_fc)g_mips_processor_decode_instruction; diff --git a/src/arch/processor-int.h b/src/arch/processor-int.h index bbe2384..fc9097e 100644 --- a/src/arch/processor-int.h +++ b/src/arch/processor-int.h @@ -58,6 +58,7 @@ struct _GArchProcessor      GObject parent;                         /* A laisser en premier        */      SourceEndian endianness;                /* Boutisme de l'architecture  */ +    MemoryDataSize memsize;                 /* Taille de l'espace mémoire  */      decode_instruction_fc decode;           /* Traduction en instructions  */ diff --git a/src/arch/processor.c b/src/arch/processor.c index 317e893..c8630d7 100644 --- a/src/arch/processor.c +++ b/src/arch/processor.c @@ -132,6 +132,25 @@ SourceEndian g_arch_processor_get_endianness(const GArchProcessor *proc)  /******************************************************************************  *                                                                             * +*  Paramètres  : proc = processeur d'architecture à consulter.                * +*                                                                             * +*  Description : Fournit la taille de l'espace mémoire d'une architecture.    * +*                                                                             * +*  Retour      : Taille de l'espace mémoire.                                  * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +MemoryDataSize g_arch_processor_get_memory_size(const GArchProcessor *proc) +{ +    return proc->memsize; + +} + + +/****************************************************************************** +*                                                                             *  *  Paramètres  : proc   = architecture visée par la procédure.                *  *                data   = flux de données à analyser.                         *  *                pos    = position courante dans ce flux. [OUT]               * @@ -216,3 +235,44 @@ GArchProcessor *get_arch_processor_for_type(ArchProcessorType type)      return _processors_list[type];  } + + +/****************************************************************************** +*                                                                             * +*  Paramètres  : format = exécutable d'origine.                               * +*                                                                             * +*  Description : Fournit le processeur d'architecture lié à un format.        * +*                                                                             * +*  Retour      : Processeur d'architecture trouvé.                            * +*                                                                             * +*  Remarques   : -                                                            * +*                                                                             * +******************************************************************************/ + +GArchProcessor *get_arch_processor_from_format(const exe_format *format) +{ +    GArchProcessor *result;                 /* Conversion à retourner      */ + +    switch (get_exe_target_machine(format)) +    { +        case FTM_JVM: +            result = get_arch_processor_for_type(APT_JVM); +            break; + +        case FTM_MIPS: +            result = get_arch_processor_for_type(APT_MIPS); +            break; + +        case FTM_386: +            result = get_arch_processor_for_type(APT_386); +            break; + +        default: +            result = NULL; +            break; + +    } + +    return result; + +} diff --git a/src/arch/processor.h b/src/arch/processor.h index 5726197..8529d50 100644 --- a/src/arch/processor.h +++ b/src/arch/processor.h @@ -25,31 +25,10 @@  #define _ARCH_PROCESSOR_H -#include <sys/types.h> - - -#include "operand.h"    /* AsmSyntax */ -#include "instruction.h" - - - -/* FIXME : lieu de définition temporaire */ - -/* Mode d'adressage à utiliser */ -typedef enum _AdressMode -{ -    ADM_32BITS,                             /* Adresses sur 32 bits        */ -    ADM_64BITS                              /* Adresses sur 64 bits        */ - -} AdressMode; - - - - -  #include <glib-object.h> +#include "instruction.h"  #include "../common/endianness.h" @@ -73,6 +52,9 @@ GType g_arch_processor_get_type(void);  /* Fournit le boustime du processeur d'une architecture. */  SourceEndian g_arch_processor_get_endianness(const GArchProcessor *); +/* Fournit la taille de l'espace mémoire d'une architecture. */ +MemoryDataSize g_arch_processor_get_memory_size(const GArchProcessor *); +  /* Décode une instruction dans un flux de données. */  GArchInstruction *g_arch_processor_decode_instruction(const GArchProcessor *, const bin_t *, off_t *, off_t, off_t, vmpa_t); @@ -99,6 +81,9 @@ bool init_all_processors(void);  /* Fournit le processeur d'architecture correspondant à un type. */  GArchProcessor *get_arch_processor_for_type(ArchProcessorType); +/* Fournit le processeur d'architecture lié à un format. */ +GArchProcessor *get_arch_processor_from_format(const exe_format *); +  #endif  /* _ARCH_PROCESSOR_H */ diff --git a/src/arch/x86/processor.c b/src/arch/x86/processor.c index 8af84b2..7370da1 100644 --- a/src/arch/x86/processor.c +++ b/src/arch/x86/processor.c @@ -97,6 +97,7 @@ static void g_x86_processor_init(GX86Processor *proc)      parent = G_ARCH_PROCESSOR(proc);      parent->endianness = SRE_BIG; +    parent->memsize = MDS_32_BITS;      parent->decode = (decode_instruction_fc)g_x86_processor_decode_instruction; diff --git a/src/editor.c b/src/editor.c index ff1217b..7185e3f 100644 --- a/src/editor.c +++ b/src/editor.c @@ -43,7 +43,6 @@  #include "dlg_sections.h"  #include "pan_strings.h" -#include "pan_symbols.h"  #include "analysis/binary.h"  #include "gtkext/easygtk.h"  #include "gtkext/gtkbinview.h" @@ -233,7 +232,7 @@ int main(int argc, char **argv)  GtkWidget *create_editor(void)  {      GtkWidget *result;                      /* Fenêtre à renvoyer          */ -    GObject *ref;                           /* version de référence        */ +    GObject *ref;                           /* Version de référence        */      GtkWidget *menuboard;                   /* Barre de menus principale   */      GtkWidget *menuitem;                    /* Elément de menu             */      GtkWidget *menubar;                     /* Support pour éléments       */ @@ -252,7 +251,6 @@ GtkWidget *create_editor(void)    GtkWidget *binview;    GtkWidget *panel; -  GtkWidget *_panel;    openida_project *project; @@ -441,7 +439,7 @@ GtkWidget *create_editor(void)    gtk_paned_set_position (GTK_PANED (hpaned1), 600); -  init_panels(); +    init_panels(ref);      dpanel = gtk_dock_panel_new(); @@ -503,10 +501,8 @@ GtkWidget *create_editor(void)      gtk_paned_pack2(GTK_PANED(hpaned1), dpanel, TRUE, TRUE); -    panel = build_symbols_panel(G_OBJECT(result)); -    _panel = panel; -    ditem = gtk_dock_item_new(_("Symbols"), panel); +    ditem = gtk_dock_item_new(_("Symbols"), get_panel(PNT_SYMBOLS));      gtk_dock_panel_add_item(dpanel, ditem);      ditem = gtk_dock_item_new(_("Registers"), get_panel(PNT_REGISTERS)); @@ -1221,7 +1217,7 @@ void open_last_file(GObject *ref)      g_object_set_data(ref, "current_binary", binary); - +    reload_symbols_panel_content(get_panel(PNT_SYMBOLS), get_openida_binary_format(binary));  } diff --git a/src/format/exe_format.c b/src/format/exe_format.c index 2924847..ffd9fde 100644 --- a/src/format/exe_format.c +++ b/src/format/exe_format.c @@ -360,25 +360,7 @@ const uint8_t *get_exe_content(const exe_format *format, off_t *length)  FormatTargetMachine get_exe_target_machine(const exe_format *format)  { -    FormatTargetMachine result;             /* Type à retourner            */ - -    result = format->get_target_machine(format); - -    switch (result) -    { -        case FTM_JVM: -            log_simple_message(LMT_INFO, _("Detected architecture: Java Virtual Machine")); -            break; -        case FTM_MIPS: -            log_simple_message(LMT_INFO, _("Detected architecture: Microprocessor without Interlocked Pipeline Stages")); -            break; -        case FTM_386: -            log_simple_message(LMT_INFO, _("Detected architecture: i386")); -            break; - -    } - -    return result; +    return format->get_target_machine(format);  } diff --git a/src/gtkext/gtksnippet.h b/src/gtkext/gtksnippet.h index f079258..aa388a2 100644 --- a/src/gtkext/gtksnippet.h +++ b/src/gtkext/gtksnippet.h @@ -54,8 +54,6 @@ struct _GtkSnippet {      GtkWidget widget;                       /* Présence obligatoire en 1er */ -    AdressMode mode;                        /* Mode d'affichage            */ -      bool show_vaddress;                     /* Affichage des adresses ?    */      bool show_code;                         /* Affichage du code brut ?    */ diff --git a/src/panel/Makefile.am b/src/panel/Makefile.am index f53a841..48f0958 100755 --- a/src/panel/Makefile.am +++ b/src/panel/Makefile.am @@ -4,7 +4,8 @@ noinst_LTLIBRARIES = libpanel.la  libpanel_la_SOURCES =					\  	log.h log.c							\  	panels.h panels.c					\ -	registers.h registers.c +	registers.h registers.c				\ +	symbols.h symbols.c  libpanel_la_LDFLAGS =  diff --git a/src/panel/log.c b/src/panel/log.c index 812d470..e8ac952 100644 --- a/src/panel/log.c +++ b/src/panel/log.c @@ -67,7 +67,6 @@ GtkWidget *build_log_panel(void)      GtkWidget *treeview;                    /* Affichage de la liste       */      GtkCellRenderer *renderer;              /* Moteur de rendu de colonne  */      GtkTreeViewColumn *column;              /* Colonne de la liste         */ -    GtkTreeSelection *select;               /* Sélection dans la liste     */      result = gtk_scrolled_window_new(NULL, NULL);      gtk_widget_show(result); @@ -154,6 +153,12 @@ void log_simple_message(LogMessageType type, const char *msg)                                 -1);              break; +        default: +            gtk_tree_store_set(store, &iter, +                               LGC_STRING, msg, +                               -1); +            break; +      }  } diff --git a/src/panel/panels.c b/src/panel/panels.c index eae6ba3..39adc10 100644 --- a/src/panel/panels.c +++ b/src/panel/panels.c @@ -27,6 +27,7 @@  #include "log.h"  #include "registers.h" +#include "symbols.h" @@ -36,7 +37,7 @@ static GtkWidget *panel_list[PNT_COUNT];  /******************************************************************************  *                                                                             * -*  Paramètres  : -                                                            * +*  Paramètres  : ref = espace de référencements global.                       *  *                                                                             *  *  Description : Procède au chargement de tous les panneaux.                  *  *                                                                             * @@ -46,10 +47,11 @@ static GtkWidget *panel_list[PNT_COUNT];  *                                                                             *  ******************************************************************************/ -void init_panels(void) +void init_panels(GObject *ref)  {      panel_list[PNT_LOG] = build_log_panel();      panel_list[PNT_REGISTERS] = build_registers_panel(); +    panel_list[PNT_SYMBOLS] = build_symbols_panel(ref);  } @@ -68,6 +70,6 @@ void init_panels(void)  GtkWidget *get_panel(PanelType id)  { -    return panel_list[id]; +    return (id < PNT_COUNT ? panel_list[id] : NULL);  } diff --git a/src/panel/panels.h b/src/panel/panels.h index e38f196..feaa908 100644 --- a/src/panel/panels.h +++ b/src/panel/panels.h @@ -35,6 +35,7 @@ typedef enum _PanelType  {      PNT_LOG,                                /* Messages système            */      PNT_REGISTERS,                          /* Registres d'architecture    */ +    PNT_SYMBOLS,                            /* Symboles d'exécutable       */      PNT_COUNT @@ -42,7 +43,7 @@ typedef enum _PanelType  /* Procède au chargement de tous les panneaux. */ -void init_panels(void); +void init_panels(GObject *);  /* Fournit la référence d'un panneau donné. */  GtkWidget *get_panel(PanelType); diff --git a/src/pan_symbols.c b/src/panel/symbols.c index 05a162b..3937849 100644 --- a/src/pan_symbols.c +++ b/src/panel/symbols.c @@ -1,6 +1,6 @@  /* OpenIDA - Outil d'analyse de fichiers binaires - * pan_symbols.c - panneau d'affichage des symboles + * symbols.c - panneau d'affichage des symboles   *   * Copyright (C) 2006-2007 Cyrille Bagard   * @@ -22,14 +22,15 @@   */ -#include "pan_symbols.h" +#include "symbols.h"  #include <malloc.h>  #include <stdlib.h> -#include "gtkext/gtkbinview.h" +#include "../arch/processor.h" +#include "../gtkext/gtkbinview.h" @@ -49,7 +50,6 @@ void change_symbols_selection(GtkTreeSelection *, gpointer); -  /******************************************************************************  *                                                                             *  *  Paramètres  : ref = adresse de l'espace de référencements.                 * @@ -127,13 +127,13 @@ void change_symbols_selection(GtkTreeSelection *selection, gpointer data)      GtkTreeIter iter;      GtkTreeModel *model;      gchar *string;                          /* Chaîne sélectionnée         */ -    uint64_t address;                       /* Adresse à rejoindre         */ +    vmpa_t address;                         /* Adresse à rejoindre         */      GtkBinview *binview;                    /* Affichage à faire défiler   */      if (gtk_tree_selection_get_selected(selection, &model, &iter))      {          gtk_tree_model_get(model, &iter, SBC_ADDRESS, &string, -1); -        address = strtoll(string, NULL, 16); +        address = strtoll(string, NULL, 16);    /* FIXME */          g_free(string);          binview = GTK_BIN_VIEW(g_object_get_data(G_OBJECT(data), "binview")); @@ -158,46 +158,60 @@ void change_symbols_selection(GtkTreeSelection *selection, gpointer data)  *                                                                             *  ******************************************************************************/ -void handle_new_exe_on_symbols_panel(GtkWidget *panel, const exe_format *format) +void reload_symbols_panel_content(GtkWidget *panel, const exe_format *format)  { +    GBinRoutine **routines;                 /* Routines trouvées           */ +    size_t count;                           /* Nombre de ces routines      */      GtkTreeStore *store;                    /* Modèle de gestion           */ -    GtkTreeIter iter;                       /* Point d'insertion           */ -    char **labels;                          /* Etiquettes humaines         */ -    SymbolType *types;                      /* Type des symboles listés    */ -    uint64_t *offsets;                      /* Emplacements de mémoire     */ -    size_t count;                           /* Nombre des symboles         */ +    GArchProcessor *proc;                   /* Architecture utilisée       */      size_t i;                               /* Boucle de parcours          */ -    char address[11]; - -    store = g_object_get_data(G_OBJECT(panel), "store"); +    vmpa_t address;                         /* Adresse associée au symbole */ +    char tmp[19];                           /* Version humainement lisible */ +    GtkTreeIter iter;                       /* Point d'insertion           */ -    count = get_exe_symbols(format, &labels, &types, &offsets); +    routines = get_all_exe_routines(format, &count); -    if (count > 0) +    if (routines != NULL)      { +        store = g_object_get_data(G_OBJECT(panel), "store"); + +        proc = get_arch_processor_from_format(format); +          for (i = 0; i < count; i++)          { +            address = g_binary_routine_get_address(routines[i]); +            switch (g_arch_processor_get_memory_size(proc)) +            { +                case MDS_8_BITS: +                    snprintf(tmp, 19, "0x%02llx", address); +                    break; -            snprintf(address, 11, "0x%08llx", offsets[i]); +                case MDS_16_BITS: +                    snprintf(tmp, 19, "0x%04llx", address); +                    break; +                case MDS_32_BITS: +                    snprintf(tmp, 19, "0x%08llx", address); +                    break; + +                default: +                case MDS_64_BITS: +                    snprintf(tmp, 19, "0x%16llx", address); +                    break; + +            }              gtk_tree_store_append(store, &iter, NULL);              gtk_tree_store_set(store, &iter, -                               SBC_ADDRESS, address, -                               SBC_NAME, labels[i], +                               SBC_ADDRESS, tmp, +                               SBC_NAME, g_binary_routine_get_name(routines[i]),                                 -1); -          } -        free(labels); -        free(types); -        free(offsets); +        free(routines);      } - - -  } diff --git a/src/pan_symbols.h b/src/panel/symbols.h index d294717..195bcf2 100644 --- a/src/pan_symbols.h +++ b/src/panel/symbols.h @@ -29,7 +29,7 @@  #include <gtk/gtk.h> -#include "format/exe_format.h" +#include "../format/exe_format.h" @@ -38,7 +38,7 @@ GtkWidget *build_symbols_panel(GObject *);  /* Affiche la liste des symboles présents dans un exécutable. */ -void handle_new_exe_on_symbols_panel(GtkWidget *, const exe_format *); +void reload_symbols_panel_content(GtkWidget *, const exe_format *); | 
