From: Tim X <timx@nospam.dev.null>
To: help-gnu-emacs@gnu.org
Subject: Re: using the debugger
Date: Sat, 09 Apr 2011 08:14:36 +1000 [thread overview]
Message-ID: <87bp0gcrw3.fsf@puma.rapttech.com.au> (raw)
In-Reply-To: 6ce07a3c-aa8f-4492-8976-3a2a7fc3a890@i14g2000yqe.googlegroups.com
rusi <rustompmody@gmail.com> writes:
> On Apr 8, 7:03 pm, "Drew Adams" <drew.ad...@oracle.com> wrote:
>> > while I'm stepping through the calling of a function, it in turn calls
>> > another function, which I don't really care about. I know what it's
>> > going to return, I just want to get on with things, but the secondary
>> > function is long and drawn-out and I have to hit "d" like
>> > fifty times to get through it and back to the top-level function.
>> > Can someone tell me how I can skip them?
>>
>> Use `c' to `c'ut to the `c'hase, skipping directly to the result of an
>> evaluation.
>>
>> Use `d' to `d'ig through an evaluation step by step.
>>
>> Remember the `C-h m' is your friend in nearly any buffer.
>>
>> [Ken's reply about "instrumenting" was no doubt about using `edebug'. I take it
>> that you are instead using `debug' (which is what I use, FWIW). IOW, I assume
>
> Just curious -- why do you prefer debug over edebug?
> Or perhaps a better question: Whats your debug-workflow?
>
>> you're either calling `(debug)' in your code or doing `M-x debug-on-entry' or
>> setting `debug-on-error' or `debug-on-quit' to non-nil.]
>
I can't answer why Drew uses debug, but I use it frequently simply because
for many problems it is sufficient and I find it easier than setting up
edebug. I tend to switch to edebug if the problem proves to be tricky
and the problem is not revealing itself via reading the code or debug
isn't giving the level of control/interaction I need.
Probably the most common 'tool' I use is message. I personally don't
like stepping through lines of code watching variables change value to
find a problem. My preferred approach is to study the code and trace
through it in my head as most of the time, I find the bugs that are the
trickiest to fix are more about logic problems and errors in the
algorithm. Really understanding what the code does is the key and I find
studying the source to be more rewarding than stepping/tracing through
lines of code with a debugger because that doesn't give a high
enough/overall view of what was intended - sometimes, you need to see
the forest and not the trees.
Tim
--
tcross (at) rapttech dot com dot au
next prev parent reply other threads:[~2011-04-08 22:14 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-08 11:18 using the debugger Eric Abrahamsen
2011-04-08 11:26 ` ken
2011-04-08 11:33 ` Eric Abrahamsen
2011-04-08 14:03 ` Drew Adams
2011-04-08 15:33 ` Eric Abrahamsen
[not found] ` <mailman.10.1302271417.11168.help-gnu-emacs@gnu.org>
2011-04-08 17:30 ` rusi
2011-04-08 18:16 ` Drew Adams
2011-04-08 22:14 ` Tim X [this message]
2011-04-09 0:39 ` Perry Smith
[not found] ` <mailman.3.1302286616.22287.help-gnu-emacs@gnu.org>
2011-04-24 1:07 ` David Combs
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=87bp0gcrw3.fsf@puma.rapttech.com.au \
--to=timx@nospam.dev.null \
--cc=help-gnu-emacs@gnu.org \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.