From: Ruslan Kabatsayev <b7.10110111@gmail.com>
To: Luis Machado <luis.machado@linaro.org>
Cc: gdb@gnu.org
Subject: Re: How to set a breakpoint on imported Win32 function?
Date: Thu, 16 Jan 2020 17:17:00 -0000 [thread overview]
Message-ID: <CAHEcG96ZcRV+3JMvpVeEcVFAdpz2Jbep+ab+3N0WVq73cJQwqA@mail.gmail.com> (raw)
In-Reply-To: <4d48b93e-6ae7-2f27-1b2e-9e06899bec6d@linaro.org>
On Thu, 16 Jan 2020 at 17:53, Luis Machado <luis.machado@linaro.org> wrote:
>
> On 1/15/20 7:42 PM, Ruslan Kabatsayev wrote:
> > Hello,
> >
> > I have a program without any debug info, which has an import table
> > with some functions imported by name. E.g. kernel32!ExitProcess is
> > imported, and the debugger should know its name and address.
> >
> > But whenever I run GDB (from mingw-w64) with my test exe and try to
> > set breakpoint on ExitProcess, GDB complains that no symbol table is
> > loaded and asks if I want it set on future library load. After I agree
> > and let the debuggee run, the debuggee exits without any trap
> > (although it does exit via this exact function).
> >
> > OTOH, on Linux I can set a breakpoint on e.g. exit, which gets located
> > in /lib/i386-linux-gnu/libc.so.6 for which I don't have any debug
> > symbols, and the breakpoint successfully traps.
> >
> > So, how can I set a breakpoint on an imported function in Windows? Or
> > is the handling of PE import table to fill GDB's symbol table not
> > implemented?
> >
> > Thanks,
> > Ruslan
> >
>
> Given what you described, i think GDB doesn't know how to properly
> locate that symbol. Can you at least see the symbol somewhere, in
> disassemble output for example?
No, apparently GDB doesn't indeed know about this symbol. The
disassembly (both at the call site and in the function itself) simply
shows the address, without any hints about symbols.
Has this ever worked on Windows GDB? Or was it simply not implemented?
next prev parent reply other threads:[~2020-01-16 17:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-15 22:42 Ruslan Kabatsayev
2020-01-16 14:54 ` Luis Machado
2020-01-16 17:17 ` Ruslan Kabatsayev [this message]
2020-01-16 18:14 ` Luis Machado
2020-01-16 18:28 ` Eli Zaretskii
2020-01-16 20:01 ` Ruslan Kabatsayev
2020-01-17 7:46 ` Eli Zaretskii
2020-01-17 8:41 ` Ruslan Kabatsayev
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=CAHEcG96ZcRV+3JMvpVeEcVFAdpz2Jbep+ab+3N0WVq73cJQwqA@mail.gmail.com \
--to=b7.10110111@gmail.com \
--cc=gdb@gnu.org \
--cc=luis.machado@linaro.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox