diff options
Diffstat (limited to 'plugins/readelf/section.c')
-rw-r--r-- | plugins/readelf/section.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/readelf/section.c b/plugins/readelf/section.c index bae4b4c..f7aa727 100644 --- a/plugins/readelf/section.c +++ b/plugins/readelf/section.c @@ -399,6 +399,7 @@ static bool annotate_elf_section_header(GElfFormat *format, SourceEndian endian, /****************************************************************************** * * * Paramètres : format = description de l'exécutable à compléter. * +* status = barre de statut à tenir informée. * * * * Description : Charge tous les symboles liés aux en-têtes de section ELF. * * * @@ -408,7 +409,7 @@ static bool annotate_elf_section_header(GElfFormat *format, SourceEndian endian, * * ******************************************************************************/ -bool annotate_elf_section_header_table(GElfFormat *format) +bool annotate_elf_section_header_table(GElfFormat *format, GtkStatusStack *status) { bool result; /* Bilan à retourner */ const elf_header *header; /* En-tête principale */ @@ -417,6 +418,7 @@ bool annotate_elf_section_header_table(GElfFormat *format) off_t offset; /* Tête de lecture du binaire */ vmpa2t pos; /* Localisation des symboles */ uint16_t e_shnum; /* Nombre d'éléments 'Program' */ + activity_id_t msg; /* Message de progression */ uint16_t i; /* Boucle de parcours */ result = true; @@ -433,9 +435,18 @@ bool annotate_elf_section_header_table(GElfFormat *format) e_shnum = ELF_HDR(format, *header, e_shnum); + msg = gtk_status_stack_add_activity(status, _("Writing annotations for all Elf section headers..."), e_shnum); + for (i = 0; i < e_shnum && result; i++) + { result = annotate_elf_section_header(format, endian, &strings, &pos); + gtk_status_stack_update_activity_value(status, msg, 1); + + } + + gtk_status_stack_remove_activity(status, msg); + return true; } |