mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-03 18:13:01 +00:00
Print error counts in the XML output.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3779
This commit is contained in:
parent
e139611944
commit
651db21589
@ -253,6 +253,8 @@ static void pp_Error ( Error* err, Bool printCount )
|
||||
{
|
||||
if (VG_(clo_xml)) {
|
||||
VG_(message)(Vg_UserMsg, "<error>");
|
||||
VG_(message)(Vg_UserMsg, " <unique>0x%llx</unique>",
|
||||
Ptr_to_ULong(err));
|
||||
VG_(message)(Vg_UserMsg, " <tid>%d</tid>", err->tid);
|
||||
}
|
||||
|
||||
@ -664,7 +666,8 @@ static Bool show_used_suppressions ( void )
|
||||
}
|
||||
|
||||
|
||||
/* This is called not from generated code but from the scheduler */
|
||||
/* Show all the errors that occurred, and possibly also the
|
||||
suppressions used. */
|
||||
void VG_(show_all_errors) ( void )
|
||||
{
|
||||
Int i, n_min;
|
||||
@ -749,6 +752,27 @@ void VG_(show_all_errors) ( void )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Show occurrence counts of all errors, in XML form. */
|
||||
void VG_(show_error_counts_as_XML) ( void )
|
||||
{
|
||||
Error* err;
|
||||
VG_(message)(Vg_UserMsg, "<errorcounts>");
|
||||
for (err = errors; err != NULL; err = err->next) {
|
||||
if (err->supp != NULL)
|
||||
continue;
|
||||
if (err->count <= 0)
|
||||
continue;
|
||||
VG_(message)(
|
||||
Vg_UserMsg, " <pair><unique>0x%llx</unique>"
|
||||
"<count>%d</count></pair>",
|
||||
Ptr_to_ULong(err), err->count
|
||||
);
|
||||
}
|
||||
VG_(message)(Vg_UserMsg, "</errorcounts>");
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------------------------*/
|
||||
/*--- Standard suppressions ---*/
|
||||
/*------------------------------------------------------------*/
|
||||
|
||||
@ -49,13 +49,15 @@ typedef
|
||||
}
|
||||
CoreErrorKind;
|
||||
|
||||
extern void VG_(load_suppressions) ( void );
|
||||
extern void VG_(load_suppressions) ( void );
|
||||
|
||||
extern void VG_(show_all_errors) ( void );
|
||||
extern void VG_(show_all_errors) ( void );
|
||||
|
||||
extern Bool VG_(is_action_requested) ( Char* action, Bool* clo );
|
||||
extern void VG_(show_error_counts_as_XML) ( void );
|
||||
|
||||
extern UInt VG_(get_n_errs_found) ( void );
|
||||
extern Bool VG_(is_action_requested) ( Char* action, Bool* clo );
|
||||
|
||||
extern UInt VG_(get_n_errs_found) ( void );
|
||||
|
||||
#endif // __PUB_CORE_ERRORMGR_H
|
||||
|
||||
|
||||
@ -2856,6 +2856,10 @@ void VG_(shutdown_actions)(ThreadId tid)
|
||||
VG_(message)(Vg_UserMsg, "");
|
||||
|
||||
if (VG_(clo_xml)) {
|
||||
if (VG_(needs).core_errors || VG_(needs).tool_errors) {
|
||||
VG_(show_error_counts_as_XML)();
|
||||
VG_(message)(Vg_UserMsg, "");
|
||||
}
|
||||
VG_(message)(Vg_UserMsg, "<status>FINISHED</status>");
|
||||
VG_(message)(Vg_UserMsg, "");
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user