debuginfo_generation++;
}
+#if defined(VGO_freebsd)
+void VG_(load_all_debuginfo) (void)
+{
+ for (DebugInfo* di = debugInfo_list; di; di = di->next) {
+ if (di->deferred == True) {
+ di->deferred = False;
+ ML_(read_elf_debug)( di );
+ ML_(canonicaliseTables)( di );
+ check_CFSI_related_invariants(di);
+ ML_(finish_CFSI_arrays)(di);
+ }
+ }
+}
+#endif
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
" Please consider disabling capability by using the RUNNING_ON_VALGRIND mechanism.\n"
" See http://valgrind.org/docs/manual/manual-core-adv.html#manual-core-adv.clientreq\n");
}
+ /* now complete loading debuginfo since it is not allowed after entering cap mode */
+ VG_(load_all_debuginfo)();
}
// SYS_cap_getmode 517
info (e.g. CFI info or FPO info or ...). */
extern UInt VG_(debuginfo_generation) (void);
+#if defined(VGO_freebsd)
+/* Force completion of loading all debuginfo.
+ Needed on FreeBSD when entering capability mode since
+ we can't open executable files to get the debuginfo after
+ entering capability mode. */
+extern void VG_(load_all_debuginfo) (void);
+#endif
/* True if some FPO information is loaded.