|
From: Julian S. <js...@ac...> - 2006-12-06 03:40:51
|
Thanks for the investigation/diagnosis. I just committed a fix
which will be in 3.2.2. Re the Z-demangling, I think the root
problem is that --gen-suppressions= was not doing the right thing;
hence my fix is marginally different from yours.
J
Index: memcheck/mc_main.c
===================================================================
--- memcheck/mc_main.c (revision 6376)
+++ memcheck/mc_main.c (revision 6378)
@@ -3437,7 +3437,7 @@
return (ekind == FreeErr || ekind == FreeMismatchErr);
case OverlapSupp:
- return (ekind = OverlapErr);
+ return (ekind == OverlapErr);
case LeakSupp:
return (ekind == LeakErr);
Index: coregrind/m_errormgr.c
===================================================================
--- coregrind/m_errormgr.c (revision 6376)
+++ coregrind/m_errormgr.c (revision 6378)
@@ -402,7 +402,7 @@
{
static UChar buf[ERRTXT_LEN];
- if ( VG_(get_fnname_nodemangle) (ip, buf, ERRTXT_LEN) ) {
+ if ( VG_(get_fnname_Z_demangle_only) (ip, buf, ERRTXT_LEN) ) {
VG_(printf)(" fun:%s\n", buf);
} else if ( VG_(get_objname)(ip, buf, ERRTXT_LEN) ) {
VG_(printf)(" obj:%s\n", buf);
On Wednesday 15 November 2006 22:14, Paul Floyd wrote:
> Hi
>
> I got a copy from svn. Here are the two changes that I needed to make:
>
> svn diff mc_main.c
> Index: mc_main.c
> ===================================================================
> --- mc_main.c (revision 6354)
> +++ mc_main.c (working copy)
> @@ -3432,7 +3432,7 @@
> return (ekind == FreeErr || ekind == FreeMismatchErr);
>
> case OverlapSupp:
> - return (ekind = OverlapErr);
> + return (ekind == OverlapErr);
>
> case LeakSupp:
> return (ekind == LeakErr);
>
> (that one's a no-brainer)
>
> svn diff m_errormgr.c
> Index: m_errormgr.c
> ===================================================================
> --- m_errormgr.c (revision 6354)
> +++ m_errormgr.c (working copy)
> @@ -1161,7 +1161,11 @@
> // up comparing "malloc" in the suppression against
> // "_vgrZU_libcZdsoZa_malloc" in the backtrace, and the
> // two of them need to be made to match.
> +/*
> if (!VG_(get_fnname_Z_demangle_only)(a, caller_name,
> ERRTXT_LEN)) +*/
> + if (!VG_(get_fnname_nodemangle)(a, caller_name, ERRTXT_LEN))
> +
> VG_(strcpy)(caller_name, "???");
> break;
> default: VG_(tool_panic)("supp_matches_callers");
>
> Here, su->callers[i].name was in mangled format, so getting caller_name in
> demangled format resulted in the function returning false, and the error
> that was in my suppression file was printed.
>
> A+
> Paul
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share
> your opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Valgrind-users mailing list
> Val...@li...
> https://lists.sourceforge.net/lists/listinfo/valgrind-users
|