summaryrefslogtreecommitdiff
path: root/src/panels/strings.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/panels/strings.c')
-rw-r--r--src/panels/strings.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/panels/strings.c b/src/panels/strings.c
index 1362ee1..8fd7ae6 100644
--- a/src/panels/strings.c
+++ b/src/panels/strings.c
@@ -125,7 +125,8 @@ void handle_new_exe_on_strings_panel(GtkWidget *panel, const GExeFormat *format)
size_t count; /* Nombre des chaînes */
GBinSymbol **symbols; /* Liste des chaînes trouvées */
size_t i; /* Boucle de parcours */
- char address[11]; /* Conversion de l'adresse */
+ const mrange_t *range; /* Emplacement de symbole */
+ char address[VMPA_MAX_LEN]; /* Conversion de l'adresse */
GtkTreeIter iter; /* Point d'insertion */
store = g_object_get_data(G_OBJECT(panel), "store");
@@ -136,13 +137,13 @@ void handle_new_exe_on_strings_panel(GtkWidget *panel, const GExeFormat *format)
{
if (g_binary_symbol_get_target_type(symbols[i]) != STP_STRING) continue;
- /* FIXME : adresses autres que 32 bits */
- snprintf(address, 11, "0x%08llx", g_binary_symbol_get_address(symbols[i]));
+ range = g_binary_symbol_get_range(symbols[i]);
+ mrange_virt_to_string(range, MDS_UNDEFINED, true, address, NULL);
gtk_tree_store_append(store, &iter, NULL);
gtk_tree_store_set(store, &iter,
STC_ADDRESS, address,
- STC_STRING, g_binary_symbol_to_string(symbols[i]),
+ STC_STRING, g_binary_symbol_get_label(symbols[i]),
-1);
}