• Viernes 3 de Mayo de 2024, 16:52

Autor Tema:  Re: Segmentation Fault - core dumped  (Leído 6843 veces)

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« en: Jueves 8 de Mayo de 2003, 18:03 »
0
Estoy probando un ejemplo de proceso en Unix y me produce este error: Segmentation Fault - core dumped
Y al compilarlo no hay dramas, a que se deberá este problema?. habra que ajustar el compilador de C?

Saludos

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #1 en: Jueves 8 de Mayo de 2003, 18:13 »
0
el problema no es de ajustar el compilador, recuerda que el solo verifica que el programa este bien escrito, mas no verifica que el programa haga lo que tu piensas.. lo más probable es que estes accesando o trabajando mal con algun apuntador o con algun array o cadena.

seria de ayuda si publicas el codigo.


JuanK
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #2 en: Jueves 8 de Mayo de 2003, 18:22 »
0
Aquí va el codigo:

/* system.c - Listar los procesos del usuario usando system. */
#include <stdio.h>
#include <stdlib.h>

int main ()
    {
    int  salida;   /* Salida del comando */
    char comando[100];   /* Comando a ejecutar */

    printf ("Ejemplo de system.n");
    sprintf (comando, "/bin/ps -fu %s", getenv ("USER"));
    salida = system (comando);
    printf ("Salida del comando: %dn", salida);
    exit (salida);
    }

reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #3 en: Jueves 8 de Mayo de 2003, 20:05 »
0
a mi no me arrojo ningun error, pero apuesto a que te lo esta generando por que la cadena esta llenda de basura, usa esto al comienzo:

memset(comando,'',sizeof(comando));

..Me cuentas como te va.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #4 en: Jueves 8 de Mayo de 2003, 21:14 »
0
probe, compila bien  pero al correr el ejecutable arroja el mismo error

reckva

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #5 en: Jueves 8 de Mayo de 2003, 21:29 »
0
no utilices sprintf, utiliza mejor strcpy, asi sea un poquito mas largo de hacer.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #6 en: Jueves 8 de Mayo de 2003, 21:38 »
0
ahora me arrojo lo siguiente:
cc system.c -o system
system.c: In function `main':
system.c:18: too many arguments to function `strcpy'
Fatal error in /usr/sde/default/usr/lib/gcc/cc1
Exit status 041

el codigo con la midificaciones:
#include <stdio.h>
#include <stdlib.h>
int main ()
    {
    int  salida;        /* Salida del comando */
    char comando[100];  /* Comando a ejecutar */
    memset (comando,'',sizeof(comando));
    printf ("Ejemplo de system.n");
    strcpy (comando, "/bin/ls -l %s", getenv ("USER"));
    salida = system (comando);
    printf ("Salida del comando: %dn", salida);
    exit (salida);
    }

reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #7 en: Jueves 8 de Mayo de 2003, 21:43 »
0
strcpy( cadena destino ,  cadena origen  );
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #8 en: Jueves 8 de Mayo de 2003, 22:39 »
0
Probe de la siguiente forma :

#include <stdio.h>
#include <stdlib.h>
int main ()
    {
    int  salida;        /* Salida del comando */
    char comando[100];  /* Comando a ejecutar */
    memset (comando,'',sizeof(comando));

    printf ("Ejemplo de system.n");

   strcpy ("/bin/ls -l %s", comando);
    salida = system (comando);
    printf ("Salida del comando: %dn", salida);
    exit (salida);                                                          
    }                                                      

y este fue el resultado:

$ cc system.c -o system2
$ system2
Ejemplo de system.
Bus Error - core dumped

Reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #9 en: Jueves 8 de Mayo de 2003, 22:48 »
0
prueba con este
...
/* system.c - Listar los procesos del usuario usando system. */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
int salida; /* Salida del comando */
char comando[100]; /* Comando a ejecutar */

printf ("Ejemplo de system.n");
strcpy(comando,"/bin/ps -fu ");
strcat(comando, getenv("USER"));
salida = system (comando);
printf ("Salida del comando: %dn", salida);
exit (salida);
}

juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #10 en: Jueves 8 de Mayo de 2003, 23:09 »
0
probe:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int salida; /* Salida del comando */
char comando[100]; /* Comando a ejecutar */
printf ("Ejemplo de system.n");
strcpy(comando,"/bin/ps -fu ");
strcat(comando, getenv("USER"));
salida = system (comando);
printf ("Salida del comando: %dn", salida);
exit (salida);
}

resultado
$ cc system2.c -o system2
$ system2
Ejemplo de system.
Segmentation Fault - core dumped

Reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #11 en: Jueves 8 de Mayo de 2003, 23:14 »
0
..buieno sigamos indagando....
no uses exit.. usa mejor


return salida;
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #12 en: Jueves 8 de Mayo de 2003, 23:24 »
0
igual

Reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #13 en: Jueves 8 de Mayo de 2003, 23:33 »
0
probare esta noche el problema en mi casa, sino me funciona en linux te cuento aver que podemos hacer, si me funciona seguramente el problema es de alguna libreria de tu linux..por lo menos hoy lo probe en el emulador de linux y no pme presento problemas.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #14 en: Jueves 8 de Mayo de 2003, 23:57 »
0
Vale juanK .
Encontre un apunte que te puede ayudar a entender e error

Cualquier programador que trabaje en el entorno C-UNIX conoce y "teme" el clásico mensaje: Segmentation fault (core dumped). Detrás de este mensaje está la detección por parte del sistema operativo de un acceso a memoria inválido (ya sea un acceso a una dirección no asignada o un intento de realizar una operación no permitida sobre una determinada dirección de memoria) y la consiguiente generación de la señal SEGV que, al no ser normalmente capturada por el programa, causa la terminación anómala del mismo.

lo encontre en la siguiente paguina:
http://laurel.datsi.fi.upm.es/~ssoo/DSO ... memon.html

Reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #15 en: Viernes 9 de Mayo de 2003, 00:02 »
0
a eso me referia al principio cuando te comente que el problema se debia a un error de apuntadores, de arrays o de cadenas.. ese error se genera tras una terminacion anomala por las razones que expusiste.

;)

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #16 en: Lunes 12 de Mayo de 2003, 08:21 »
0
Acabo de probar la version original de programa en linux rehat 7.0..
mi version de elrnel es la 2.4.7-10 y no me arrojo ningun error..

Nos queda por probar:
- que compiles y ejecutes desde la sesion del administrador...
-prueba instalando un a version  nueva del gcc
-una vez compilado y creado el ejecutable dale todos los permisos
   chmod 7777 ejecutable

Me cuentas porfa

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

reckba2

  • Miembro activo
  • **
  • Mensajes: 43
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #17 en: Lunes 12 de Mayo de 2003, 17:59 »
0
Hola Juank

Lo hice y me arroja lo mismo, en todo caso me fije que los ejecutables creados estan con todos los permisos.

saludos

reckba

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Segmentation Fault - core dumped
« Respuesta #18 en: Viernes 16 de Mayo de 2003, 17:48 »
0
Hola, amigo he estado haciendo averiguaciones, pero necesito que me regales lo siguiente:

-version de linux o de unix que usas
-version del kernel
-vesion del gcc
-tipo de procesador..en fin tipo de mauina que tienes

hablamos
chau.

juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

gmantil

  • Miembro MUY activo
  • ***
  • Mensajes: 121
    • Ver Perfil
Re: Segmentation Fault - core dumped
« Respuesta #19 en: Viernes 16 de Mayo de 2003, 20:40 »
0
Hola juank :

He mirado el siguiente programa y en mi máquina no saca ningún error:

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   int salida; /* Salida del comando */
   char comando[100]; /* Comando a ejecutar */

   printf ("Ejemplo de system.n");
   strcpy(comando,"/bin/ps -fu ");
   strcat(comando, getenv("USER"));
   salida = system (comando);
   printf ("Salida del comando: %dn", salida);
   exit (salida);
}

Yo te recomiendo que compiles sin la línea donde se ejecuta el system, para ver si es allí donde se produce el error. Si el error persiste, regresen el system y quiten otra línea, así hasta poder detectar exactamente en que línea se produce el problema.

Una vez tengan línea del conflicto, podremos revisar que puede estar pasando.

Una cosa que les pido incluir es el encabezado string.h, en algunos sistemas las funciones strcat y strcpy, se encuentran solamente en este encabezado.

Cuentenme como les termina de ir.

gmantil

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Segmentation Fault - core dumped
« Respuesta #20 en: Viernes 16 de Mayo de 2003, 22:48 »
0
es muy probable que sea pore lo de la libreria, ahora que recuerdo una vez me paso eso con la math, y lo solucione asi....
esperaremos los comentarios de reckba

juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io