Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: danny.backx@scarlet.be
Cc: gdb-patches@sourceware.org
Subject: Re: Post mortem debugging for Windows CE
Date: Wed, 06 May 2009 14:34:00 -0000	[thread overview]
Message-ID: <200905061535.07698.pedro@codesourcery.com> (raw)
In-Reply-To: <1241619130.4083.137.camel@dannypc>

On Wednesday 06 May 2009 15:12:10, Danny Backx wrote:
> After a good deal of actually using gdb to debug itself (as I did a lot
> in these days), 

Welcome to the club.  :-)

> here is where I am at : 
> 
> dannypc: {1013} gdb/gdb examples/callstack.exe examples/Ce042809-01.kdmp
> GNU gdb 6.8

 ^^^ you'll need to move to CVS gdb at some point.  GDB's been changing
a lot since 6.8, but, I don't think you'll be much affected.

> coredll.dll.0409.mui: No such file or directory.
> Error while mapping shared library sections:
> coredll.dll: No such file or directory.
> Symbol file not found for coredll.dll.0409.mui
> Symbol file not found for coredll.dll
> Core was generated by `callstack'.
> Program terminated with signal 11, Segmentation fault.
> [New process 594225230]
> #0  0x00011178 in fibo (n=2) at callstack.c:11
> 11                      return *i;
> (gdb) info sharedlibrary 
> >From        To          Syms Read   Shared Object Library
>                         No          coredll.dll.0409.mui
>                         No          coredll.dll
> (gdb) 
> 

> It doesn't print from- and to-addresses in this example. I believe that
> this is because solib_map_sections can't read the DLL files (they're
> target DLLs from Windows CE, I don't have them on my host). So it fails
> in :
>   scratch_chan = solib_open (filename, &scratch_pathname);
> 
>   if (scratch_chan < 0)
>     {
>       perror_with_name (filename);
>     }
> 
> Am I right in concluding that this is the way it should work ?

Looking very good.  I had a vague memory that WinCE gdbserver reports
absolute dlls paths when doing live debugging.  Does it not?  What
does "info sharedlibrary" say when doing live debugging?

When paths are reported as relative (coredll.dll vs
/Windows/coredll.dll), then pointing gdb at a local host copy
of dlls with the 'set sysroot' command doesn't help.  You'll
need 'set solib-search-path'.

 (gdb) help set sysroot
 Set an alternate system root.
 The system root is used to load absolute shared library symbol files.
 For other (relative) files, you can add directories using
 `set solib-search-path'.

 (gdb) help set solib-search-path
 Set the search path for loading non-absolute shared library symbol files.
 This takes precedence over the environment variables PATH and LD_LIBRARY_PATH.

[ coredll.dll can't be (easilly) extracted from ROM, but, you're not
expected to debug coredll.dll anyway. ]

> Does anyone have tricks to produce some fake DLL file for this type of
> scenario ?

Completely untested, but something as simple as this?

bad.c:
int crashme (int *foofoo)
{
  return *foofoo;
}

arm-mingw32ce-gcc bad.c -o bad.dll -O0 -g3 -shared

main.c:
int main()
{
   crashme (NULL);
}

arm-mingw32ce-gcc main.c -o main.exe -O0 -g3 -L. -lbad

?

BTW, does "info threads" show the correct list of threads?

-- 
Pedro Alves


  reply	other threads:[~2009-05-06 14:34 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-28 14:45 Danny Backx
2009-04-28 16:02 ` Pedro Alves
2009-04-28 17:48   ` Danny Backx
2009-04-28 19:18     ` Danny Backx
2009-04-29  7:10       ` Eli Zaretskii
2009-04-29  7:19         ` Danny Backx
2009-04-29  7:44           ` Eli Zaretskii
2009-04-30  7:25   ` Danny Backx
2009-04-30  9:58     ` Pedro Alves
2009-05-01 14:35       ` Danny Backx
2009-05-01 15:37         ` Pedro Alves
2009-05-05 13:31           ` Danny Backx
2009-05-05 16:53             ` Pedro Alves
2009-05-06 14:13               ` Danny Backx
2009-05-06 14:34                 ` Pedro Alves [this message]
2009-05-06 20:05                   ` Danny Backx
2009-05-06 20:47                     ` Pedro Alves
2009-05-07  1:21                       ` Danny Backx
2009-05-10 19:21                         ` Pedro Alves
2009-05-11 14:03                           ` Danny Backx
2009-05-11 15:00                             ` Danny Backx

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=200905061535.07698.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=danny.backx@scarlet.be \
    --cc=gdb-patches@sourceware.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