Topic: Fallo de segmentaci

hola, hace un buen tiempo estoy tratando de que me funcione un modelo de aplicacion en C.

Son 2 programas uno cliente y otro servidor, donde el cliente llama al servidor y

Re: Fallo de segmentaci

A mi me funciona perfectamente.. usando  netcat como cliente..

$ gcc server.c -o server
$ ./server
server: got connection from 127.0.0.1
server: got connection from 127.0.0.1
server: got connection from 192.168.117.213

En la otra terminal...

$ nc localhost 3490
Hello, world!

Re: Fallo de segmentaci

y tambien con el client.c

$ gcc client.c -o client
$ ./client localhost
Received: Hello, world!

No pude reproducir tu problema..  sad

Re: Fallo de segmentaci

El "core dump" es cuando se "cuelga", puede ser por un problema de tu codigo que toor confirmo que no es. Capas estes usando un binario en una distribucion o muy vieja o muy nueva.

Lo mas sencillo que podes hacer es recompilar con
make client
o como hizo toor, despues correle un gdb al core:
gdb core
trace

Saludos
Oliver

Re: Fallo de segmentaci

Re: Fallo de segmentaci

Pero y ahora te funciona?

Re: Fallo de segmentaci

tenes permisos para crear archivos en ese directorio?

Re: Fallo de segmentaci

tenes que compilar con soporte para depuracion, solo asi el binario que "escupe" el gcc es apto para correr con gdb

 $ gcc -g server.c -o server

Demas esta decir que tenes que tener gdb instalado big_smile

luego corre desde el gdb:

$ gdb
GNU gdb 6.6-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
(gdb)

ahi metes:

 (gdb) file ./server
Reading symbols from /home/dschulz/Desktop/tests/server...done.
Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb)

con el comando file le instruis al gdb a que lea los simbolos de depuracion del archivo ./server, que es el binario que compilaste con el flag -g de gcc. Luego corres la aplicacion propiamente con el comando start:

(gdb) start
Breakpoint 1 at 0x8048605: file server.c, line 15.
Starting program: /home/dschulz/Desktop/tests/server
main () at server.c:15
15          {
(gdb)

luego podes ir jugando con gdb y probar a ver que pasa..  por ejemplo.. meterle el comando step hasta que llegas al loop while(1)
y dejale corriendo, mientras en otra terminal le met

Last edited by toor (2007-07-09 20:03:19)

Re: Fallo de segmentaci

Este es el resultado que tuve corriendo el programa con el gdb:
Todo va bien hasta que llega a la l

Re: Fallo de segmentaci

Esto es lo que me salio al terminar la ejecucion del programa cliente


0x00002ae39fe8f8e4 in __libc_start_main () from /lib/libc.so.6
(gdb) next
Single stepping until exit from function __libc_start_main,
which has no line number information.
Received:
Program exited normally.

Re: Fallo de segmentaci

Que linux usas?  Podes ver las versiones de libc, gcc, etc.. ?

Re: Fallo de segmentaci

ldd client ?