/* Debug counter for debugging support
- Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC.
#include "system.h"
#include "coretypes.h"
#include "errors.h"
+#include "tm.h"
+#include "rtl.h"
+#include "output.h"
#include "dbgcnt.h"
dbg_cnt (enum debug_counter index)
{
count[index]++;
+ if (dump_file && count[index] == limit[index])
+ fprintf (dump_file, "***dbgcnt: limit reached for %s.***\n",
+ map[index].name);
+
return dbg_cnt_is_enabled (index);
}
{
int i;
for (i = debug_counter_number_of_counters - 1; i >= 0; i--)
- if (!strncmp (map[i].name, name, len))
+ if (strncmp (map[i].name, name, len) == 0
+ && map[i].name[len] == '\0')
break;
if (i < 0)
return false;
- dbg_cnt_set_limit_by_index (i, value);
+ dbg_cnt_set_limit_by_index ((enum debug_counter) i, value);
return true;
}
if (next == NULL || *next != 0)
{
- char *buffer = alloca (arg - start + 2);
+ char *buffer = XALLOCAVEC (char, arg - start + 2);
sprintf (buffer, "%*c", (int)(1 + (arg - start)), '^');
error ("Can not find a valid counter:value pair:");
error ("-fdbg-cnt=%s", start);
/* Print name, limit and count of all counters. */
-void dbg_cnt_list_all_counters (void)
+void
+dbg_cnt_list_all_counters (void)
{
int i;
printf (" %-30s %-5s %-5s\n", "counter name", "limit", "value");