Compare Revisions

Debugging Mozilla with Valgrind

Revision 17934:

Revision 17934 by Julian Seward on

Revision 17935:

Revision 17935 by Julian Seward on

Title:
Debugging Mozilla with Valgrind
Debugging Mozilla with Valgrind
Slug:
Debugging_Mozilla_with_Valgrind
Debugging_Mozilla_with_Valgrind
Content:

Revision 17934
Revision 17935
t57      <li>Build Firefox with "-g -O".&nbsp; Don't use a plain "-gt57      <li>Build Firefox with "-g -O".&nbsp; Don't use a plain "-g
>" (unoptimized)&nbsp;build.&nbsp; Checking memory references take>" (unoptimized)&nbsp;build.&nbsp; Checking memory references take
>s Valgrind a lot of time.&nbsp; At -O0 (no optimization), gcc doe>s Valgrind a lot of time.&nbsp; At -O0 (no optimization), gcc doe
>s't do much register allocation, so the generated code has many u>s't do much register allocation, so the generated code has many u
>nnecessary memory references which slow Valgrind down.&nbsp; At ->nnecessary memory references which slow Valgrind down.&nbsp; At -
>O (that is, -O1) most of those disappear, whilst retaining pretty>O (that is, -O1) most of those disappear, whilst retaining pretty
> good stack-unwind-ability, so that Valgrind can still produce sa> good stack-unwind-ability, so that Valgrind can still produce sa
>ne stack traces.&nbsp; The dangers with running optimised code on>ne stack traces.&nbsp; The difficulties with running optimised co
> Memcheck are (1) a somewhat increased risk of false positive uni>de on Memcheck are (1) a somewhat increased risk of false positiv
>nitialised-value errors, and (2) incomplete or incomprehensible s>e uninitialised-value errors, and (2) incomplete or incomprehensi
>tack traces.&nbsp; At -O1 neither of these seem significant.&nbsp>ble stack traces.&nbsp; At -O1 neither of these seem significant.
>; If you want to live on the bleeding edge, and you have gcc-4.3 >&nbsp; If you want to live dangerously, and you have gcc-4.3 or l
>or later, try "-g -O2".&nbsp; This appears to give reasonable res>ater, try "-g -O2".&nbsp; This appears to give reasonable results
>ults too.&nbsp; There may be future improvements to Valgrind to m> too.&nbsp; There may be future improvements to Valgrind to mitig
>itigate problem (1) at -O2, and newer gccs appear to give better >ate problem (1) at -O2, and newer gccs appear to give better debu
>debug info at high optimisation levels, thereby mitigating (2).>g info at high optimisation levels, thereby mitigating (2).

Back to History