Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carolinesjs

debug do codeblocks

Recommended Posts

Pessoal, postei aqui a alguns dias pedindo auxilio com um programa, agora consegui resolver aqueles problemas, aparentemente o programa agora não tem erros, mas ele não executa, o professor disse q pode ser falha de segmentação, mas não consegui usar o debug do codeblocks... alguém pode me ajudar??

 

http://codepad.org/F8SexAXO

 

O código tá ai!

A linguagem é C!

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

É meio compilicado enviar 1200 linhas de código, mais 2300 (ou mais) linhas de output e pedir que descubramos qual o erro...

 

 

Não tem jeito de fornecer mais informações, mais objetivas, para que façamos as buscas mais concentradas em um ponto, sendo mais fácil então? Por exemplo, as circunstâncias em que o erro acontece?

 

 

Abraços :D

 

 

@edit:

 

Bom, para começar, aprenda a compilar seu código usando as máximas opções do compilador. Utilize sempre compilação na linha de comando, pois as IDE's escondem o processo de compilação de você, o que causa erros obscuros, como esse, e que deixam os programadores novatos em C loucos... Sempre compile um programa pelo gcc com as seguintes instruções:

 

gcc -Wall -Wextra -ansi -pedantic -std=c99 -Werror -o /* OUTPUT */ /* ARQUIVOS DE CÓDIGO FONTE */

 

Não mude isso somente para fazer que o código compile, pois ele estará cheio de erros. É sempre bom desenvolver com todos as detecções de erros possíveis pelo compilador ligadas ao máximo. No começo você xingará muito essas instruções, por sempre apontarem erros, mas depois começarará a escrever código limpo e sem erros detectados pelo compilador, como eu agora.

 

 

Essa instrução fará que o máximo de informação acerca do código seja mostrado, tanto erros quanto warnings (que passam a ser considerados erros), o que faz com que seu código seja muito mais seguro e a prova de bugs (embora não 100% ;D).

 

Por exemplo, compilando seu programa desse jeito, usaria a instrução (tome o nome desse arquivo de código fonte como bibcontrol.c):

 

gcc -Wall -Wextra -ansi -pedantic -std=c99 -Werror -o bibcontrol bibcontrol.c

 

 

E então, o output foi esse:

 

[renato@renatoutsch devel]$ gcc -Wall -Wextra -ansi -pedantic -std=c99 -Werror -o bibcontrol bibcontrol.c
bibcontrol.c: In function ‘main’:
bibcontrol.c:218:25: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c:244:25: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c:256:25: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c:310:25: error: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[100]’ [-Werror=format]
bibcontrol.c:352:33: error: statement with no effect [-Werror=unused-value]
bibcontrol.c:367:33: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c:372:33: error: statement with no effect [-Werror=unused-value]
bibcontrol.c:387:33: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c: In function ‘incluir_usuario’:
bibcontrol.c:565:5: error: format ‘%c’ expects argument of type ‘char *’, but argument 2 has type ‘int *’ [-Werror=format]
bibcontrol.c:565:5: error: format ‘%c’ expects argument of type ‘char *’, but argument 3 has type ‘int *’ [-Werror=format]
bibcontrol.c:565:5: error: format ‘%c’ expects argument of type ‘char *’, but argument 4 has type ‘int *’ [-Werror=format]
bibcontrol.c: In function ‘men_erro’:
bibcontrol.c:661:5: error: format ‘%s’ expects a matching ‘char *’ argument [-Werror=format]
bibcontrol.c:659:22: error: unused parameter ‘mens’ [-Werror=unused-parameter]
bibcontrol.c: In function ‘emprestimo_devolucao’:
bibcontrol.c:701:29: error: statement with no effect [-Werror=unused-value]
bibcontrol.c:707:29: error: statement with no effect [-Werror=unused-value]
bibcontrol.c:674:51: error: unused variable ‘i’ [-Werror=unused-variable]
bibcontrol.c:673:42: error: unused variable ‘data_devolucao’ [-Werror=unused-variable]
bibcontrol.c:673:10: error: unused variable ‘data_emprestimo’ [-Werror=unused-variable]
bibcontrol.c: In function ‘listar_usuario’:
bibcontrol.c:795:5: error: format ‘%c’ expects argument of type ‘int’, but argument 2 has type ‘data’ [-Werror=format]
bibcontrol.c: In function ‘listar_usuario_td’:
bibcontrol.c:815:9: error: format ‘%c’ expects argument of type ‘int’, but argument 2 has type ‘data’ [-Werror=format]
bibcontrol.c: In function ‘conv_maius’:
bibcontrol.c:902:19: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
bibcontrol.c:903:9: error: implicit declaration of function ‘toupper’ [-Werror=implicit-function-declaration]
bibcontrol.c: In function ‘altera_registro_acervo’:
bibcontrol.c:1026:5: error: too many arguments for format [-Werror=format-extra-args]
bibcontrol.c:996:9: error: unused variable ‘emprestado’ [-Werror=unused-variable]
bibcontrol.c: In function ‘altera_registro_usuario’:
bibcontrol.c:1064:5: error: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘data’ [-Werror=format]
bibcontrol.c:1067:5: error: format ‘%i’ expects argument of type ‘int *’, but argument 2 has type ‘struct data *’ [-Werror=format]
bibcontrol.c:1052:10: error: unused variable ‘local_nascimento’ [-Werror=unused-variable]
bibcontrol.c:1049:9: error: unused variable ‘codigo’ [-Werror=unused-variable]
cc1: all warnings being treated as errors

[renato@renatoutsch devel]$ 

 

Pode-se perceber que tem coisas a arrumar antes que o código compile... Aposto que corrigir isso resolveria o problema e ele funcionaria direitinho.

 

 

Boa sorte ^^

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pelas dicas!

Sou extremamente inexperiente no assunto, estou na primeira fase do curso, não conhecia nada de programação até então, por isso não domino o assunto e não consigo entender muitas das informações que você me passou, apesar de achar que elas facilitariam minha vida, não consigo por em prática. Mas com o tempo vou pegando...

Eu sei q o meu programa estava cheio de problemas, mas tinha um erro fatal q fazia ele nem executar, era um #define de 100000, troquei por um valor menor e ele executou :D, então pude começar a tratar os demais erros...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

 

Funciona o seguinte:

 

bibcontrol.c:218:25: error: too many arguments for format [-Werror=format-extra-args]

 

Nome do arquivo em que se localiza o erro.

Linha dentro o arquivo em que o erro foi detectado.

Caracter da linha em que o erro foi detectado.

Tipo de erro.

Opção selecionada que fez com que o erro fosse detectado.

 

Mas por favor, note que a linha e o caracter é quando o compilador detectou o erro. Quando o erro foi criado pode estar em outro lugar, mas o gcc tem uma precisão razoável, estando o erro, na maioria das vezes, na linha dada ou 1~3 linhas acima ou abaixo.

 

Examinando então o exemplo acima, percebemos que o erro é no arquivo bibcontro.c, na linha 218, com o erro sendo explicado como você ter chamado mais argumentos do que aceita tal função, ou algo assim.

 

 

Outro exemplo:

 

bibcontrol.c:1052:10: error: unused variable ‘local_nascimento’ [-Werror=unused-variable]

 

Na linha 1052, você declarou uma variável que não foi usada em lugar nenhum. Então ela é inútil. Por isso, é só excluir a declaração... Se ela foi usada alguma vez no programa depois de sua declaração e essa mensagem apareceu, pode ser por causa de alguma falha de segmentação no programa...

 

 

Examine o resto... veja o que entende!

 

 

 

Então, resolvido?

 

 

Abraços :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

 

 

Funciona o seguinte:

 

bibcontrol.c:218:25: error: too many arguments for format [-Werror=format-extra-args]

 

Nome do arquivo em que se localiza o erro.

Linha dentro o arquivo em que o erro foi detectado.

Caracter da linha em que o erro foi detectado.

Tipo de erro.

Opção selecionada que fez com que o erro fosse detectado.

 

Mas por favor, note que a linha e o caracter é quando o compilador detectou o erro. Quando o erro foi criado pode estar em outro lugar, mas o gcc tem uma precisão razoável, estando o erro, na maioria das vezes, na linha dada ou 1~3 linhas acima ou abaixo.

 

Examinando então o exemplo acima, percebemos que o erro é no arquivo bibcontro.c, na linha 218, com o erro sendo explicado como você ter chamado mais argumentos do que aceita tal função, ou algo assim.

 

 

Outro exemplo:

 

bibcontrol.c:1052:10: error: unused variable ‘local_nascimento’ [-Werror=unused-variable]

 

Na linha 1052, você declarou uma variável que não foi usada em lugar nenhum. Então ela é inútil. Por isso, é só excluir a declaração... Se ela foi usada alguma vez no programa depois de sua declaração e essa mensagem apareceu, pode ser por causa de alguma falha de segmentação no programa...

 

 

Examine o resto... veja o que entende!

 

 

 

Então, resolvido?

 

 

Abraços :D

 

 

 

 

 

Huum... é, agora ficou mais claro, sei q os erros não são poucos... mas como eu disse, com o tempo vou pegando o jeito. Obrigada pela paciência!

 

 

Até!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.