Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

cool

Segm Fault vs gdb!

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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 ....

  • Voto 1

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

código destrutivo da string original:

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

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

  • Voto 1

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

acho que

- vai dar asneira da grossa

- ainda não percebeste o funcionamento do strtok

- isso parece dar um ciclo infinito

  • Voto 1

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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);
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.