Jump to content
cool

Segm Fault vs gdb!

Recommended Posts

cool

Boa noite bloggers, estou a ter um pequeno grave problema. Estou a trabalhar com threads como já anteriormente referi :P e estou a ter um segm fault que não sei onde é. Sempre resolvi os meus usando gdb, mas como o mesmo aloca a sua própria memória ele passa aos testes sem se quer reparar no erro. Gostava de uma dica que me pudesse ajudar a superar isto.

Obrigado a todos.

Cool aka Pedro.

Share this post


Link to post
Share on other sites
HappyHippyHippo

só existe um método seguro de fazer debug a programas multi-thread/multi-processos :

- saber o que estás a fazer

- fazer muito, mas muito devagar

- testar todas as pequenas alterações

caso contrário, é uma dor de cabeça descomunal ....

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
cool

Então e outra pergunta que nao tem a haver com este problema. Se eu tiver um path por exemplo /pasta/pasta1/ficheiro.txt, se eu quiser um algoritmo para numa str="/pasta/pasta1/" e a outra str1=ficheiro.txt, alguma ideia?

Share this post


Link to post
Share on other sites
HappyHippyHippo

código destrutivo da string original:

char * path = "/pasta/pasta1/ficheiro.txt";
char * file = strrchr(path, "/");

file[0] = '\0';
file++;

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
cool

void nome (const char *path, char** nome, char** dir){
   char* aux;
   char* entra;
   strcpy(aux, path);
   while(strlen(aux)!=1){
        strcat(&dir,strtok(aux, "/"));
   }
   strcpy(nome, aux);
}

Eu fiz algo deste género, que te parece?

Share this post


Link to post
Share on other sites
HappyHippyHippo

acho que

- vai dar asneira da grossa

- ainda não percebeste o funcionamento do strtok

- isso parece dar um ciclo infinito

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
cool

verdade verdadinha, já vi que nao era assim que se fazia :P . Vi mal,... deve ser algo deste genero:

void nome (const char *path, char** nome, char** dir){
   char* aux;
   char* entra;
  strcpy(aux, path);
  entra=strtok(aux, "/");
  while(strlen(entra)!=1){ /*tenho duvidas desta linha, se funciona assim ou nao*/
     strcat(&dir,(entra=strtok(NULL, "/")));
  }
  strcpy(nome, aux);
}

Share this post


Link to post
Share on other sites
HappyHippyHippo

código destrutivo da string original:

char * path = "/pasta/pasta1/ficheiro.txt";
char * file = strrchr(path, "/");

file[0] = '\0';
file++;


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.