From: Michael Haggerty <mhagger@alum.mit.edu>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>, Petr Baudis <pasky@suse.cz>,
Michael Haggerty <mhagger@alum.mit.edu>
Subject: [RFC 0/2] Debugging tools for get_pathname()
Date: Tue, 27 Sep 2011 06:28:05 +0200 [thread overview]
Message-ID: <1317097687-11098-1-git-send-email-mhagger@alum.mit.edu> (raw)
I just wasted a bunch of time diagnosing a problem that was caused by
other code's misuse of a temporary buffer created by get_pathname()
(patch forthcoming). The bug was triggered by totally unrelated (and
innocent) code changes that I had made. I found it quite difficult to
figure out the source of the problem.
It is probably obvious to everybody else, but here are the two tricks
that finally enabled me to diagnose the problem:
1. I increased the number of temporary buffers available to
get_pathname(). This made the test suite failure go away, which
was a good indication that the problem was related to the buffers.
2. I changed get_pathname() to allocate and free the buffers instead
of using statically-allocated buffers. This made it trivial to
find the offender using valgrind.
This patch series make it easier to apply these tricks. I hope it
helps somebody else avoid the pain that I just experienced.
Michael Haggerty (2):
Make the number of pathname buffers a compile-time constant
Make misuse of get_pathname() buffers detectable by valgrind
path.c | 43 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 41 insertions(+), 2 deletions(-)
--
1.7.7.rc2
next reply other threads:[~2011-09-27 4:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-27 4:28 Michael Haggerty [this message]
2011-09-27 4:28 ` [RFC 1/2] Make the number of pathname buffers a compile-time constant Michael Haggerty
2011-09-27 4:28 ` [RFC 2/2] Make misuse of get_pathname() buffers detectable by valgrind Michael Haggerty
2011-11-16 13:57 ` Nguyen Thai Ngoc Duy
2011-11-16 14:18 ` Nguyen Thai Ngoc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1317097687-11098-1-git-send-email-mhagger@alum.mit.edu \
--to=mhagger@alum.mit.edu \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pasky@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).