public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
* GDB does not returns
@ 2003-08-01  4:32 Jose Paul
  2003-08-08  2:27 ` Andrew Cagney
  0 siblings, 1 reply; 4+ messages in thread
From: Jose Paul @ 2003-08-01  4:32 UTC (permalink / raw)
  To: gdb


Hi All,

Hi Alain,

Here is the program I am using.

/*----------------------------------------------------
 * eCos 'Hello world' example
 * --------------------------------------------------*/

#include <stdio.h>
//#include "library_example.h"

int main(int argc, char* argv[])
{
    int i;


    for (i=0; i<10; i++)
    {
      printf("Hello world!\n\r");
     }
    return 0;
}


I am using GDB  mipsel-elf-gdb.exe build GNU gdb 20030516.
My problem is that when I run the above program in command line it prints
Hello world
and is not returning to GDB.

One of the ecos GUY says that if we put a break point at exit it is possible
to exit the program.
What command we have use to put a break
point at exit or what settings I have to make to get back to gdb prompt?.

Please let me know.
Jose



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

* Re: GDB does not returns
  2003-08-01  4:32 GDB does not returns Jose Paul
@ 2003-08-08  2:27 ` Andrew Cagney
  2003-08-08  4:33   ` Jose Paul
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Cagney @ 2003-08-08  2:27 UTC (permalink / raw)
  To: Jose Paul; +Cc: gdb

> Hi All,
> 
> Hi Alain,
> 
> Here is the program I am using.
> 
> /*----------------------------------------------------
>  * eCos 'Hello world' example
>  * --------------------------------------------------*/
> 
> #include <stdio.h>
> //#include "library_example.h"
> 
> int main(int argc, char* argv[])
> {
>     int i;
> 
> 
>     for (i=0; i<10; i++)
>     {
>       printf("Hello world!\n\r");
>      }
>     return 0;
> }

I guess you're doing something like:

> target remote xxx:yyy
> load
> continue


try:

> target remote xxx:yyy
> load
> break _exit
> continue

The startup code typically calls _exit after main returns.

Perhaphs, for embedded targets, GDB should automatically set a 
breakpoint on _exit.

Andrew

> I am using GDB  mipsel-elf-gdb.exe build GNU gdb 20030516.
> My problem is that when I run the above program in command line it prints
> Hello world
> and is not returning to GDB.
> 
> One of the ecos GUY says that if we put a break point at exit it is possible
> to exit the program.
> What command we have use to put a break
> point at exit or what settings I have to make to get back to gdb prompt?.
> 
> Please let me know.
> Jose
> 
> 
> 
> 


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

* Re: GDB does not returns
  2003-08-08  2:27 ` Andrew Cagney
@ 2003-08-08  4:33   ` Jose Paul
  2003-08-08 13:37     ` Andrew Cagney
  0 siblings, 1 reply; 4+ messages in thread
From: Jose Paul @ 2003-08-08  4:33 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: gdb

Hi Andrew,

I tried the method you mentioned in the reply.
It gave a message that the program is ended,but when I send a "continue"
command
again it says "continuing" and is not returning back.
Here is the log.



(gdb) target remote 192.168.0.91:9000
Remote debugging using 192.168.0.91:9000
0xffffffff80012d14 in ?? ()
(gdb) symbol-file D:\DeviceStudio\ecos\work\examples\src\helloworld\d
world.exe
D:DeviceStudioecosworkexamplessrchelloworlddebughelloworld.exe: No su
directory.
(gdb) symbol-file /ecos-d/DeviceStudio/ecos/work/examples/src/hellowo
helloworld.exe
Reading symbols from /ecos-d/DeviceStudio/ecos/work/examples/src/hell
g/helloworld.exe...done.
(gdb) load /ecos-d/DeviceStudio/ecos/work/examples/src/helloworld/deb
rld.exe
Loading section .rom_vectors, size 0x194 lma 0x80080000
Loading section .text, size 0x9744c lma 0x80080194
Loading section .rodata, size 0x9e9c lma 0x801175e0
Loading section .data, size 0x1760 lma 0x80121480
Loading section .ctors, size 0x5c lma 0x80122be0
Loading section .dtors, size 0x3c lma 0x80122c3c
Loading section .devtab, size 0x2f0 lma 0x80122c78
Start address 0x80080184, load size 667492
Transfer rate: 333746 bits/sec, 510 bytes/write.
(gdb) break _exit
Breakpoint 1 at 0x8010f040: file /ecos-d/DeviceStudio/ecos/src/ecos-s
es/language/c/libc/startup/current/src/_exit.cxx, line 83.
(gdb) continue
Continuing.
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
Hello world!
[New Thread 2]
[Switching to Thread 2]

Breakpoint 1, _exit (status=0) at /ecos-d/DeviceStudio/ecos/src/ecos-
ges/language/c/libc/startup/current/src/_exit.cxx:83
83          CYG_ASSERT( status == 0, "Program _exiting with non-zero
s");
Current language:  auto; currently c++
(gdb) c
Continuing.



Thanks,
Jose


----- Original Message -----
From: "Andrew Cagney" <ac131313@redhat.com>
To: "Jose Paul" <jose@exorindia.com>
Cc: <gdb@sources.redhat.com>
Sent: Friday, August 08, 2003 7:57 AM
Subject: Re: GDB does not returns


> > Hi All,
> >
> > Hi Alain,
> >
> > Here is the program I am using.
> >
> > /*----------------------------------------------------
> >  * eCos 'Hello world' example
> >  * --------------------------------------------------*/
> >
> > #include <stdio.h>
> > //#include "library_example.h"
> >
> > int main(int argc, char* argv[])
> > {
> >     int i;
> >
> >
> >     for (i=0; i<10; i++)
> >     {
> >       printf("Hello world!\n\r");
> >      }
> >     return 0;
> > }
>
> I guess you're doing something like:
>
> > target remote xxx:yyy
> > load
> > continue
>
>
> try:
>
> > target remote xxx:yyy
> > load
> > break _exit
> > continue
>
> The startup code typically calls _exit after main returns.
>
> Perhaphs, for embedded targets, GDB should automatically set a
> breakpoint on _exit.
>
> Andrew
>
> > I am using GDB  mipsel-elf-gdb.exe build GNU gdb 20030516.
> > My problem is that when I run the above program in command line it
prints
> > Hello world
> > and is not returning to GDB.
> >
> > One of the ecos GUY says that if we put a break point at exit it is
possible
> > to exit the program.
> > What command we have use to put a break
> > point at exit or what settings I have to make to get back to gdb
prompt?.
> >
> > Please let me know.
> > Jose
> >
> >
> >
> >
>
>
>


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

* Re: GDB does not returns
  2003-08-08  4:33   ` Jose Paul
@ 2003-08-08 13:37     ` Andrew Cagney
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Cagney @ 2003-08-08 13:37 UTC (permalink / raw)
  To: Jose Paul; +Cc: gdb


> (gdb) break _exit
> Breakpoint 1 at 0x8010f040: file /ecos-d/DeviceStudio/ecos/src/ecos-s
> es/language/c/libc/startup/current/src/_exit.cxx, line 83.
> (gdb) continue
> Continuing.
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> Hello world!
> [New Thread 2]
> [Switching to Thread 2]
> 
> Breakpoint 1, _exit (status=0) at /ecos-d/DeviceStudio/ecos/src/ecos-
> ges/language/c/libc/startup/current/src/_exit.cxx:83
> 83          CYG_ASSERT( status == 0, "Program _exiting with non-zero
> s");
> Current language:  auto; currently c++

Right.  Your program's been stopped just mm from its real exit.

> (gdb) c
> Continuing.

That won't go anywhere.  The remote end will need to be modified so that 
_exit causes the target to report back a program-exited packet (Wnn, see 
Remote Protocol in the doco).  It appears at present _exit is simply 
implemented as an infinite loop..

Andrew


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

end of thread, other threads:[~2003-08-08 13:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-01  4:32 GDB does not returns Jose Paul
2003-08-08  2:27 ` Andrew Cagney
2003-08-08  4:33   ` Jose Paul
2003-08-08 13:37     ` Andrew Cagney

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).