2011-08-24 Hui Zhu <teawater@gmail.com>
* tracepoint.c (cond_string_is_same): New function. (find_matching_tracepoint): Add condition check by cond_string_is_same.
This commit is contained in:
parent
20e757674f
commit
4e5c165d88
2 changed files with 21 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-08-24 Hui Zhu <teawater@gmail.com>
|
||||
|
||||
* tracepoint.c (cond_string_is_same): New function.
|
||||
(find_matching_tracepoint): Add condition check
|
||||
by cond_string_is_same.
|
||||
|
||||
2011-08-23 Josh Matthews <josh@joshmatthews.net>
|
||||
|
||||
Fix build error in Darwin port.
|
||||
|
|
|
@ -3091,6 +3091,19 @@ free_uploaded_tsvs (struct uploaded_tsv **utsvp)
|
|||
}
|
||||
}
|
||||
|
||||
/* FIXME this function is heuristic and will miss the cases where the
|
||||
conditional is semantically identical but differs in whitespace,
|
||||
such as "x == 0" vs "x==0". */
|
||||
|
||||
static int
|
||||
cond_string_is_same (char *str1, char *str2)
|
||||
{
|
||||
if (str1 == NULL || str2 == NULL)
|
||||
return (str1 == str2);
|
||||
|
||||
return (strcmp (str1, str2) == 0);
|
||||
}
|
||||
|
||||
/* Look for an existing tracepoint that seems similar enough to the
|
||||
uploaded one. Enablement isn't compared, because the user can
|
||||
toggle that freely, and may have done so in anticipation of the
|
||||
|
@ -3111,7 +3124,8 @@ find_matching_tracepoint (struct uploaded_tp *utp)
|
|||
if (b->type == utp->type
|
||||
&& t->step_count == utp->step
|
||||
&& t->pass_count == utp->pass
|
||||
/* FIXME also test conditionals and actions. */
|
||||
&& cond_string_is_same (t->base.cond_string, utp->cond_string)
|
||||
/* FIXME also test actions. */
|
||||
)
|
||||
{
|
||||
/* Scan the locations for an address match. */
|
||||
|
|
Loading…
Reference in a new issue