bugfixes
[libpicofe.git] / linux / host_dasm.c
index a3c0e00..d2d6d0a 100644 (file)
@@ -37,7 +37,7 @@ remove_useless_symbols (asymbol **symbols, long count)
     {
       asymbol *sym = *in_ptr++;
 
-      if (sym->name == NULL || sym->name[0] == '\0')
+      if (sym->name == NULL || sym->name[0] == '\0' || sym->name[0] == '$')
         continue;
       if (sym->flags & (BSF_DEBUGGING | BSF_SECTION_SYM))
         continue;
@@ -53,6 +53,7 @@ remove_useless_symbols (asymbol **symbols, long count)
 */
       *out_ptr++ = sym;
     }
+
   return out_ptr - symbols;
 }
 
@@ -143,6 +144,7 @@ static int insn_printf(void *f, const char *format, ...)
 
 static void host_dasm_init(void)
 {
+  bfd_init();
   slurp_symtab(g_argv[0]);
 
   init_disassemble_info(&di, NULL, insn_printf);
@@ -169,7 +171,7 @@ void host_dasm(void *addr, int len)
 
   vma_end = vma + len;
   while (vma < vma_end) {
-    printf("  %p ", (void *)(long)vma);
+    printf("      %p ", (void *)(long)vma);
     vma += print_insn_func(vma, &di);
     printf("\n");
   }