This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/1362: Cannot set breakpoints in gdb in shared display driver library on QNX OS


>Number:         1362
>Category:       gdb
>Synopsis:       Cannot set breakpoints in gdb in shared display driver library on QNX OS
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    unassigned
>State:          open
>Class:          support
>Submitter-Id:   net
>Arrival-Date:   Fri Aug 29 17:48:01 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator:     Bruce McIntyre
>Release:        5.2.1qnx-nto
>Organization:
>Environment:
OS is QNX 6.2.1 2003/05/17-02:28:40edt x86pc x86, GCC version 2.95.3qnx-nto 20010315 (release), GDB was configured as ntox86
>Description:
This problem is documented in the gnu documentation but none of the suggested solutions work in this case. I am unable to set breakpoints in my driver.
I am trying to debug a shared display driver library which is dynamically loaded by the QNX io-graphics program (it's window system).  The version of ld supplied
with the QNX Momentics SDK does not support the -N option so the only viable solution recommended by GNU is the one which involves suspending gdb and renaming the executable.  I tried that and it made no difference.  I know that the library has loaded by the time I attempt to set a breakpoint in it and I know that debug symbols have been loaded since gdb knows the function name that I attempt to set the breakpoint on and the list command displays the source code of the function. It doesn't matter whether I start running the application from within gdb or attempt to attach to it already running after starting gdb.   The exact output when I attempt to set the breakpoint and continue is:

> >>>(gdb) sym /home/bmac/lib/libdevg-nv_g.so
> >>>Reading symbols from /home/bmac/lib/libdevg-nv_g.so...done.
> >>>(gdb) break nvInit
> >>>Breakpoint 1 at 0x57ec: file
> >/src/sw/main/drivers/display/QNX/init.c,
> >>>line 30.
> >>>(gdb) cont
> >>>Continuing.
> >>>warning: Cannot insert breakpoint 1:
> >>>insert_breakpoints: Operation not permitted.
> >>>Cannot insert breakpoints.
> >>>The same program may be running in another process,
> >>>or you may have requested too many hardware
> >>>breakpoints and/or watchpoints.
> >>>
> >>>(gdb)

	By the way, the same program is NOT running in another process. Can you tell me what
is the real cause of this and suggest any other way to work around it ?

>How-To-Repeat:
Attempt to debug a display driver shared library using gdb on QNX 6.2.1
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]