public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* Debugging a Vlc dll with GDB.
@ 2007-12-06 17:38 personel personel
  2007-12-06 17:53 ` Dave Korn
  2007-12-06 18:23 ` Daniel Jacobowitz
  0 siblings, 2 replies; 12+ messages in thread
From: personel personel @ 2007-12-06 17:38 UTC (permalink / raw)
  To: gdb

Hello,
 
 
I am currently using GDB v.6.5.50.20060706. One of my
colleague built an application (VLCTest.exe) by using
Visual Studio C++ 6.0 and used the MFC. His
application uses the libvlc.dll of an open source
application called Vlc. Unfortunately, Vlc has some
bug(s) and we want to find them, correct them and
suggest patches to the maintainers. So, our work will
help the open source community.
 
It tried to put a breakpoint into VLCTest.exe but it
did not work:
 
gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
debugging symbols found"
 
 
Instead of it I can put a breakpoint into libvlc.dll
(let's say function libvlc_new()). I tried but it did
not work:
 
gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
debugging symbols found"
file libvlc.dll          == reading symbols from
libvlc.dll ... done 
break libvlc_new   == breakpoint 1 at bla bla bla
run VLCTest.exe  == error creating process
/cygdrive/c/cygwin/myapp/libvlc.dll
 
 
As you can see my goal is to step into the libvlc.dll.
Can you suggest me a method?
I tought about creating a new project under Eclipse to
build VLCTest.exe but it seems
to be an overkill.
 
 
Best regards,
 
abraxis



      ____________________________________________________________________________________
Looking for last minute shopping deals?  
Find them fast with Yahoo! Search.  http://tools.search.yahoo.com/newsearch/category.php?category=shopping

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Debugging a Vlc dll with GDB.
  2007-12-06 17:38 Debugging a Vlc dll with GDB personel personel
@ 2007-12-06 17:53 ` Dave Korn
  2007-12-06 18:23 ` Daniel Jacobowitz
  1 sibling, 0 replies; 12+ messages in thread
From: Dave Korn @ 2007-12-06 17:53 UTC (permalink / raw)
  To: 'personel personel', gdb

On 06 December 2007 17:38, personel personel wrote:

> Hello,
> 
> 
> I am currently using GDB v.6.5.50.20060706. One of my
> colleague built an application (VLCTest.exe) by using
> Visual Studio C++ 6.0 

> It tried to put a breakpoint into VLCTest.exe but it
> did not work:
> 
> gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
> debugging symbols found"

> Can you suggest me a method?


  GDB (and binutils in general) doesn't speak the language used by MSVC's
debugging info (CodeView format; binutils uses STABS on windows).  Off the top
of my head, your options are:

1.  Use mingw+gcc to compile instead of MSVC, so that you get debug info
suitable for gdb.
2.  Use Microsoft's debugger that's built into MSVC, or their standalone
debugger "WinDbg".
3.  Use gdb, and deal with the lack of symbols by using "dumpbin /symbols" to
get a list of all the symbols and keep it handy in notepad while you're using
gdb, looking up the address that corresponds to a symbol whenever you want to
set a breakpoint and entering it into gdb in hex.



    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-06 17:38 Debugging a Vlc dll with GDB personel personel
  2007-12-06 17:53 ` Dave Korn
@ 2007-12-06 18:23 ` Daniel Jacobowitz
  2007-12-06 20:15   ` personel personel
  1 sibling, 1 reply; 12+ messages in thread
From: Daniel Jacobowitz @ 2007-12-06 18:23 UTC (permalink / raw)
  To: personel personel; +Cc: gdb

On Thu, Dec 06, 2007 at 09:38:10AM -0800, personel personel wrote:
> I am currently using GDB v.6.5.50.20060706. One of my
> colleague built an application (VLCTest.exe) by using
> Visual Studio C++ 6.0 and used the MFC.

As Dave mentioned, we can not do source level debugging of MSVC++
compiled applications.

> Instead of it I can put a breakpoint into libvlc.dll
> (let's say function libvlc_new()). I tried but it did
> not work:
>  
> gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
> debugging symbols found"
> file libvlc.dll          == reading symbols from
> libvlc.dll ... done 
> break libvlc_new   == breakpoint 1 at bla bla bla
> run VLCTest.exe  == error creating process
> /cygdrive/c/cygwin/myapp/libvlc.dll

Skip the "file" command.  Say yes when GDB asks if the breakpoint
should be created pending.

-- 
Daniel Jacobowitz
CodeSourcery

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-06 18:23 ` Daniel Jacobowitz
@ 2007-12-06 20:15   ` personel personel
  2007-12-06 20:29     ` Daniel Jacobowitz
  0 siblings, 1 reply; 12+ messages in thread
From: personel personel @ 2007-12-06 20:15 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: gdb

Hello Daniel,


I tried:

    gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
                     debugging symbols found"

   (gdb) break libvlc_new
    No symbol table is loaded. use the file command 


As you can see, gdb does not ask me if I want to set a
pending breakpoint. Why? It cant read any symbol table
so how can it knows that the function is not into
VLCTest.exe but in a DLL?

If you have another suggestion, I would be pleased.

Thank you,

abraxis


--- Daniel Jacobowitz <drow@false.org> wrote:

> On Thu, Dec 06, 2007 at 09:38:10AM -0800, personel
> personel wrote:
> > I am currently using GDB v.6.5.50.20060706. One of
> my
> > colleague built an application (VLCTest.exe) by
> using
> > Visual Studio C++ 6.0 and used the MFC.
> 
> As Dave mentioned, we can not do source level
> debugging of MSVC++
> compiled applications.
> 
> > Instead of it I can put a breakpoint into
> libvlc.dll
> > (let's say function libvlc_new()). I tried but it
> did
> > not work:
> >  
> > gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
> > debugging symbols found"
> > file libvlc.dll          == reading symbols from
> > libvlc.dll ... done 
> > break libvlc_new   == breakpoint 1 at bla bla bla
> > run VLCTest.exe  == error creating process
> > /cygdrive/c/cygwin/myapp/libvlc.dll
> 
> Skip the "file" command.  Say yes when GDB asks if
> the breakpoint
> should be created pending.
> 
> -- 
> Daniel Jacobowitz
> CodeSourcery
> 



      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-06 20:15   ` personel personel
@ 2007-12-06 20:29     ` Daniel Jacobowitz
  2007-12-06 20:57       ` Brian Dessent
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Jacobowitz @ 2007-12-06 20:29 UTC (permalink / raw)
  To: personel personel; +Cc: gdb

On Thu, Dec 06, 2007 at 12:14:51PM -0800, personel personel wrote:
> Hello Daniel,
> 
> 
> I tried:
> 
>     gdb -silent -e VLCTest.exe -s VLCTest.exe == "no
>                      debugging symbols found"
> 
>    (gdb) break libvlc_new
>     No symbol table is loaded. use the file command 

Try "set pending on"?  Or you may need a newer version of GDB.

-- 
Daniel Jacobowitz
CodeSourcery

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-06 20:29     ` Daniel Jacobowitz
@ 2007-12-06 20:57       ` Brian Dessent
  2007-12-07  0:28         ` Pedro Alves
  0 siblings, 1 reply; 12+ messages in thread
From: Brian Dessent @ 2007-12-06 20:57 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: personel personel, gdb

Daniel Jacobowitz wrote:

> >    (gdb) break libvlc_new
> >     No symbol table is loaded. use the file command
> 
> Try "set pending on"?  Or you may need a newer version of GDB.

I don't think pending being off is the problem, but you do need a more
recent gdb than what ships with Cygwin.  With recent CVS gdb I have had
success with something like:

gdb VLCTest.exe
add-shared-symbol-files libvlc.dll
b libvlc_new
run

I have always found debugging stripped binaries on Win32 with gdb to be
somewhat unpleasant.  After the first time that the program has run and
terminates, all the pending breakpoint stuff usually seems to work fine,
it's just that initially when nothing has loaded yet it does not.  So
that's another workaround, just run the inferior to completion without
any breakpoints and then start debugging the second run.

Brian

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-06 20:57       ` Brian Dessent
@ 2007-12-07  0:28         ` Pedro Alves
  2007-12-07  0:42           ` Daniel Jacobowitz
  0 siblings, 1 reply; 12+ messages in thread
From: Pedro Alves @ 2007-12-07  0:28 UTC (permalink / raw)
  To: gdb; +Cc: personel personel, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 3780 bytes --]

[RFC patch attached -- cc'ed to gdb-patches@]

Brian Dessent wrote:
> Daniel Jacobowitz wrote:
> 
>>>    (gdb) break libvlc_new
>>>     No symbol table is loaded. use the file command
>> Try "set pending on"?  Or you may need a newer version of GDB.
> 
> I don't think pending being off is the problem, but you do need a more
> recent gdb than what ships with Cygwin.  With recent CVS gdb I have had
> success with something like:
> 
> gdb VLCTest.exe
> add-shared-symbol-files libvlc.dll
> b libvlc_new
> run
> 
> I have always found debugging stripped binaries on Win32 with gdb to be
> somewhat unpleasant.  After the first time that the program has run and
> terminates, all the pending breakpoint stuff usually seems to work fine,
> it's just that initially when nothing has loaded yet it does not.  So
> that's another workaround, just run the inferior to completion without
> any breakpoints and then start debugging the second run.
> 

My opinion is that the pending support should kick in on this case, like
in the attached patch, like so:

  > gdb/gdb.exe gdb-stripped.exe
GNU gdb 6.7.50.20071206-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin"...
(no debugging symbols found)
(gdb) b LoadLibraryW
Function not found in loaded symbols: LoadLibraryW
Make breakpoint pending on future symbol file addition? (y or [n]) y
Breakpoint 1 (LoadLibraryW) pending.
(gdb) r
Starting program: /home/pedro/gdb/build/gdb-stripped.exe
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)

Breakpoint 1, 0x7c80ae4b in LoadLibraryW () from
/cygdrive/c/WINDOWS/system32/kernel32.dll
(gdb)

   (Those unconditional "(no debugging symbols found)" in
    symbol_file_add_with_addrs_or_offsets seem silly to me.
    An idea would be:
         if (mainline || from_tty || info_verbose)
           printf_filtered (_("(no debugging symbols found)"));
    ?
   )

And also:

  >gdb/gdb gdb-stripped.exe
GNU gdb 6.7.50.20071206-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin"...
(no debugging symbols found)
(gdb) b main
Function not found in loaded symbols: main
Make breakpoint pending on future symbol file addition? (y or [n]) y
Breakpoint 1 (main) pending.
(gdb) info b
Num     Type           Disp Enb  Address    What
1       breakpoint     keep y(p) <PENDING>  main
(gdb) file gdb/gdb.exe
Reading symbols from /home/pedro/gdb/build/gdb/gdb.exe...done.
(gdb) r
Starting program: /home/pedro/gdb/build/gdb/gdb.exe

Breakpoint 1, main (argc=1, argv=0xe336e0) at
../../gdb-server_submit/src/gdb/gdb.c:28
28        memset (&args, 0, sizeof args);
(gdb) info b
Num     Type           Disp Enb  Address    What
1       breakpoint     keep y    0x0040107a in main at
../../gdb-server_submit/src/gdb/gdb.c:28
          breakpoint already hit 1 time
(gdb)


I could swear there use to be a "pending resolved"
notice.  Did it go away with the multiple breakpoint
location support?

-- 
Pedro Alves


[-- Attachment #2: pending.diff --]
[-- Type: text/x-diff, Size: 2424 bytes --]

2007-12-07  Pedro Alves  <pedro_alves@portugalmail.pt>

	* breakpoint.c (break_command_1): Update pending breakpoint query
	text.

	* linespec.c (symtab_from_filename): Don't call error if there are
	no symbols loaded.  Update message.
	(decode_variable): Likewise.

---
 gdb/breakpoint.c |    3 ++-
 gdb/linespec.c   |   14 ++++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)

Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c	2007-12-06 20:53:32.000000000 +0000
+++ src/gdb/breakpoint.c	2007-12-07 00:07:14.000000000 +0000
@@ -5505,7 +5505,8 @@ break_command_1 (char *arg, int flag, in
           /* If pending breakpoint support is auto query and the user
 	     selects no, then simply return the error code.  */
 	  if (pending_break_support == AUTO_BOOLEAN_AUTO && 
-	      !nquery ("Make breakpoint pending on future shared library load? "))
+	      !nquery (_("\
+Make breakpoint pending on future symbol file addition? ")))
 	    return e.reason;
 
 	  /* At this point, either the user was queried about setting
Index: src/gdb/linespec.c
===================================================================
--- src.orig/gdb/linespec.c	2007-10-03 01:16:04.000000000 +0100
+++ src/gdb/linespec.c	2007-12-06 23:53:34.000000000 +0000
@@ -1534,11 +1534,11 @@ symtab_from_filename (char **argptr, cha
   file_symtab = lookup_symtab (copy);
   if (file_symtab == 0)
     {
-      if (!have_full_symbols () && !have_partial_symbols ())
-	error (_("No symbol table is loaded.  Use the \"file\" command."));
       if (not_found_ptr)
 	*not_found_ptr = 1;
-      throw_error (NOT_FOUND_ERROR, _("No source file named %s."), copy);
+      throw_error (NOT_FOUND_ERROR,
+		   _("Source file not found in loaded symbols: %s"),
+		   copy);
     }
 
   /* Discard the file name from the arg.  */
@@ -1744,13 +1744,11 @@ decode_variable (char *copy, int funfirs
   if (msymbol != NULL)
     return minsym_found (funfirstline, msymbol);
 
-  if (!have_full_symbols () &&
-      !have_partial_symbols () && !have_minimal_symbols ())
-    error (_("No symbol table is loaded.  Use the \"file\" command."));
-
   if (not_found_ptr)
     *not_found_ptr = 1;
-  throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);
+  throw_error (NOT_FOUND_ERROR,
+	       _("Function not found in loaded symbols: %s"),
+	       copy);
 }
 
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-07  0:28         ` Pedro Alves
@ 2007-12-07  0:42           ` Daniel Jacobowitz
  2007-12-07  1:57             ` Pedro Alves
  2007-12-07 16:21             ` Dave Korn
  0 siblings, 2 replies; 12+ messages in thread
From: Daniel Jacobowitz @ 2007-12-07  0:42 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb, personel personel, gdb-patches

On Fri, Dec 07, 2007 at 12:28:42AM +0000, Pedro Alves wrote:
> I could swear there use to be a "pending resolved"
> notice.  Did it go away with the multiple breakpoint
> location support?

Yes, I believe so.  It was mostly there to warn you that the
breakpoint number had changed, which Vladimir has now fixed.

>  	  if (pending_break_support == AUTO_BOOLEAN_AUTO && 
> -	      !nquery ("Make breakpoint pending on future shared library load? "))
> +	      !nquery (_("\
> +Make breakpoint pending on future symbol file addition? ")))

Accurate, but I don't like it much... sounds awkward.

For the rest, I don't really like the churn on messages; would it work
to just push the error down below *not_found_ptr = 1, and make it a
NOT_FOUND_ERROR?

-- 
Daniel Jacobowitz
CodeSourcery

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-07  0:42           ` Daniel Jacobowitz
@ 2007-12-07  1:57             ` Pedro Alves
  2007-12-07 13:54               ` Daniel Jacobowitz
  2007-12-07 16:21             ` Dave Korn
  1 sibling, 1 reply; 12+ messages in thread
From: Pedro Alves @ 2007-12-07  1:57 UTC (permalink / raw)
  To: gdb, personel personel, gdb-patches

[-- Attachment #1: Type: text/plain, Size: 2964 bytes --]

Daniel Jacobowitz wrote:
> On Fri, Dec 07, 2007 at 12:28:42AM +0000, Pedro Alves wrote:
>> I could swear there use to be a "pending resolved"
>> notice.  Did it go away with the multiple breakpoint
>> location support?
> 
> Yes, I believe so.  It was mostly there to warn you that the
> breakpoint number had changed, which Vladimir has now fixed.
> 

Humm, I found it useful, as in "ok, the breakpoint I set in a
function that will only trigger after I do this, that, and that,
is correctly set".  Now, I have to interrupt the inferior and
do an info breakpoints to see if it got in.  If the breakpoint
is in a plugin that gets loaded in reaction to some event, its
even worse, as I'll have to poll...

>>  	  if (pending_break_support == AUTO_BOOLEAN_AUTO && 
>> -	      !nquery ("Make breakpoint pending on future shared library load? "))
>> +	      !nquery (_("\
>> +Make breakpoint pending on future symbol file addition? ")))
> 
> Accurate, but I don't like it much... sounds awkward.
> 
> For the rest, I don't really like the churn on messages; would it work
> to just push the error down below *not_found_ptr = 1, and make it a
> NOT_FOUND_ERROR?
> 

Yes it works, but do we want both the current error message,
and NOT_FOUND_ERROR message that's already there, but not
triggered currently, which is the message one usually sees?
I guess you mean something like the attached?

In IMHO *this* looks awkward:

   >gdb/gdb.exe gdb-stripped.exe
GNU gdb 6.7.50.20071206-cvs
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-cygwin"...
(no debugging symbols found)
(gdb) b main
No symbol table is loaded.  Use the "file" command.
Function "main" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (main) pending.
(gdb) file gdb/gdb.exe
Reading symbols from /home/pedro/gdb/build/gdb/gdb.exe...done.
(gdb) r
Starting program: /home/pedro/gdb/build/gdb/gdb.exe

Breakpoint 1, main (argc=1, argv=0xe336e8) at ../../gdb/src/gdb/gdb.c:28
28        memset (&args, 0, sizeof args);
(gdb) info b
Num     Type           Disp Enb  Address    What
1       breakpoint     keep y    0x0040107a in main at ../../gdb/src/gdb/gdb.c:28
           breakpoint already hit 1 time
(gdb)

Should one really care if there is no symbol table
loaded, as opposed to having symbols for everything else
but what one needs?  To me, what's important is that the
symbol I requested isn't found.  With the error out of
the way, we'll ask if the user would like to make it
pending on a *shared library* load.  But, the user may
know the symbol isn't from a shared lib (like the example
above), get confused, and answer no to the pending query.

-- 
Pedro Alves


[-- Attachment #2: pending.diff --]
[-- Type: text/x-diff, Size: 2122 bytes --]

2007-12-07  Pedro Alves  <pedro_alves@portugalmail.pt>

	* linespec.c (symtab_from_filename): Don't error out early if
	there are no symbols loaded.
	(decode_variable): Likewise.

---
 gdb/linespec.c |   28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

Index: src/gdb/linespec.c
===================================================================
--- src.orig/gdb/linespec.c	2007-12-07 00:33:10.000000000 +0000
+++ src/gdb/linespec.c	2007-12-07 01:39:08.000000000 +0000
@@ -1534,11 +1534,16 @@ symtab_from_filename (char **argptr, cha
   file_symtab = lookup_symtab (copy);
   if (file_symtab == 0)
     {
-      if (!have_full_symbols () && !have_partial_symbols ())
-	error (_("No symbol table is loaded.  Use the \"file\" command."));
+      int nosyms = !have_full_symbols () && !have_partial_symbols ();
+
       if (not_found_ptr)
 	*not_found_ptr = 1;
-      throw_error (NOT_FOUND_ERROR, _("No source file named %s."), copy);
+
+      throw_error (NOT_FOUND_ERROR, _("\
+%s\
+No source file named %s."),
+		   nosyms ? _("\
+No symbol table is loaded.  Use the \"file\" command.\n") : "", copy);
     }
 
   /* Discard the file name from the arg.  */
@@ -1727,6 +1732,7 @@ decode_variable (char *copy, int funfirs
   struct symtab *sym_symtab;
 
   struct minimal_symbol *msymbol;
+  int nosyms;
 
   sym = lookup_symbol (copy,
 		       (file_symtab
@@ -1744,13 +1750,19 @@ decode_variable (char *copy, int funfirs
   if (msymbol != NULL)
     return minsym_found (funfirstline, msymbol);
 
-  if (!have_full_symbols () &&
-      !have_partial_symbols () && !have_minimal_symbols ())
-    error (_("No symbol table is loaded.  Use the \"file\" command."));
-
   if (not_found_ptr)
     *not_found_ptr = 1;
-  throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);
+
+  nosyms = (!have_full_symbols ()
+	    && !have_partial_symbols ()
+	    && !have_minimal_symbols ());
+
+  throw_error (NOT_FOUND_ERROR,
+	       _("\
+%s\
+Function \"%s\" not defined."),
+	       nosyms ? _("\
+No symbol table is loaded.  Use the \"file\" command.\n") : "", copy);
 }
 
 



^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-07  1:57             ` Pedro Alves
@ 2007-12-07 13:54               ` Daniel Jacobowitz
  2007-12-08 10:54                 ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Daniel Jacobowitz @ 2007-12-07 13:54 UTC (permalink / raw)
  To: Pedro Alves; +Cc: gdb, personel personel, gdb-patches

On Fri, Dec 07, 2007 at 01:57:05AM +0000, Pedro Alves wrote:
> Humm, I found it useful, as in "ok, the breakpoint I set in a
> function that will only trigger after I do this, that, and that,
> is correctly set".  Now, I have to interrupt the inferior and
> do an info breakpoints to see if it got in.  If the breakpoint
> is in a plugin that gets loaded in reaction to some event, its
> even worse, as I'll have to poll...

Maybe there should be a single message when any number of pending
breakpoints are resolved?  Anyway, one issue at a time.

> >>  	  if (pending_break_support == AUTO_BOOLEAN_AUTO && -	      !nquery ("Make 
> >> breakpoint pending on future shared library load? "))
> >> +	      !nquery (_("\
> >> +Make breakpoint pending on future symbol file addition? ")))
> > Accurate, but I don't like it much... sounds awkward.
> > For the rest, I don't really like the churn on messages; would it work
> > to just push the error down below *not_found_ptr = 1, and make it a
> > NOT_FOUND_ERROR?
> 
> Yes it works, but do we want both the current error message,
> and NOT_FOUND_ERROR message that's already there, but not
> triggered currently, which is the message one usually sees?
> I guess you mean something like the attached?

No, I agree that looks silly.  I meant:

> -  if (!have_full_symbols () &&
> -      !have_partial_symbols () && !have_minimal_symbols ())
> -    error (_("No symbol table is loaded.  Use the \"file\" command."));
> -
>    if (not_found_ptr)
>      *not_found_ptr = 1;
> +  if (!have_full_symbols () &&
> +      !have_partial_symbols () && !have_minimal_symbols ())
> +    throw_error (NOT_FOUND_ERROR,
> +		   _("No symbol table is loaded.  Use the \"file\" command."));
>    throw_error (NOT_FOUND_ERROR, _("Function \"%s\" not defined."), copy);

That'll produce:

No symbol table is loaded.  Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (main) pending.

Of course that still looks wrong.  It's not a shared library load that
we're waiting for.

Anyone else have concrete suggestions for these messages?

-- 
Daniel Jacobowitz
CodeSourcery

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: Debugging a Vlc dll with GDB.
  2007-12-07  0:42           ` Daniel Jacobowitz
  2007-12-07  1:57             ` Pedro Alves
@ 2007-12-07 16:21             ` Dave Korn
  1 sibling, 0 replies; 12+ messages in thread
From: Dave Korn @ 2007-12-07 16:21 UTC (permalink / raw)
  To: 'Daniel Jacobowitz', 'Pedro Alves'
  Cc: gdb, 'personel personel', 'gdb-patches'

On 07 December 2007 00:42, Daniel Jacobowitz wrote:

> On Fri, Dec 07, 2007 at 12:28:42AM +0000, Pedro Alves wrote:
>> I could swear there use to be a "pending resolved"
>> notice.  Did it go away with the multiple breakpoint
>> location support?
> 
> Yes, I believe so.  It was mostly there to warn you that the
> breakpoint number had changed, which Vladimir has now fixed.
> 
>>  	  if (pending_break_support == AUTO_BOOLEAN_AUTO &&
>> -	      !nquery ("Make breakpoint pending on future shared library load?
>> ")) +	      !nquery (_("\ +Make breakpoint pending on future symbol
file
>> addition? "))) 
> 
> Accurate, but I don't like it much... sounds awkward.

  How about

"Leave breakpoint pending until symbols can be resolved?"



    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: Debugging a Vlc dll with GDB.
  2007-12-07 13:54               ` Daniel Jacobowitz
@ 2007-12-08 10:54                 ` Eli Zaretskii
  0 siblings, 0 replies; 12+ messages in thread
From: Eli Zaretskii @ 2007-12-08 10:54 UTC (permalink / raw)
  To: Daniel Jacobowitz; +Cc: pedro_alves, gdb, lepascal01, gdb-patches

> Date: Fri, 7 Dec 2007 08:53:56 -0500
> From: Daniel Jacobowitz <drow@false.org>
> Cc: gdb@sourceware.org, personel personel <lepascal01@yahoo.com>, 	gdb-patches <gdb-patches@sourceware.org>
> 
> That'll produce:
> 
> No symbol table is loaded.  Use the "file" command.
> Make breakpoint pending on future shared library load? (y or [n]) y
> Breakpoint 1 (main) pending.
> 
> Of course that still looks wrong.  It's not a shared library load that
> we're waiting for.
> 
> Anyone else have concrete suggestions for these messages?

    No symbol table is loaded.  Perhaps a shared library was not yet
    loaded, or you need to use the "file" command.
    Make breakpoint pending on future load of symbol table? (y or [n])

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2007-12-08 10:54 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-06 17:38 Debugging a Vlc dll with GDB personel personel
2007-12-06 17:53 ` Dave Korn
2007-12-06 18:23 ` Daniel Jacobowitz
2007-12-06 20:15   ` personel personel
2007-12-06 20:29     ` Daniel Jacobowitz
2007-12-06 20:57       ` Brian Dessent
2007-12-07  0:28         ` Pedro Alves
2007-12-07  0:42           ` Daniel Jacobowitz
2007-12-07  1:57             ` Pedro Alves
2007-12-07 13:54               ` Daniel Jacobowitz
2007-12-08 10:54                 ` Eli Zaretskii
2007-12-07 16:21             ` Dave Korn

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 read-only IMAP folder(s) and NNTP newsgroup(s).