Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/11/2007, 21h06   #41
nicolas.sitbon
Membre Expert
 
Avatar de nicolas.sitbon
 
Inscription : août 2007
Messages : 2 024
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : août 2007
Messages : 2 024
Points : 2 136
Points : 2 136
Citation:
Envoyé par bibilolo2 Voir le message
Pour savoir si l'implémentation du compilateur est conforme au standard AINSI C99, la constante doit être égale à "199901L".
Toi tu as le livre "C précis et conçis" : je leur ai déjà signalé l'erreur p70 l'auteur parle des macro __STD_HOSTED__ et __STD_VERSION__ alors que c'est __STDC_HOSTED__ et __STDC_VERSION__ , le site signale désormais la seconde erreur http://www.oreilly.fr/archives/C-pkt-errata.txt et je les ai relancé pour la première. Je rappelle le passage de la norme qui explique ces 2 macros :
Code :
1
2
_ _STDC_HOSTED_ _ The integer constant 1 if the implementation is a hosted implementation or the integer constant 0 if it is not.
_ _STDC_VERSION_ _ The integer constant 199901L.
nicolas.sitbon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2009, 23h59   #42
J4e8a16n
Membre régulier
 
Avatar de J4e8a16n
 
Inscription : mars 2009
Messages : 179
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : mars 2009
Messages : 179
Points : 79
Points : 79
Par défaut fichiers grof et gdb manquants

Bonjour à tous,

J'obtiens avec gcc -g monexe

a.exe et non pas a.out

J'obtiens avec gcc -pg monexe
gprof monexe [ou d'autres tentatives du genre]
gmon.out: No such file or directory
__________________
Petit Malin
"accélérateur . . . qui pousse . . . un électron a passer par deux trous d’un écran en même temps." (Cyrille Burt: "C’est mieux qu’un fantôme") (Janus p.251 )
HP Pavilion Elite m9525f Desktop PC - Vista Édition Familiale Premium SP1 64 bits - Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz - Intel 64 (EM64T), x86-64
J4e8a16n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2009, 16h34   #43
LordMacharius
Membre actif
 
Homme Maxime Estrade
Développeur en systèmes embarqués
Inscription : juillet 2009
Messages : 99
Détails du profil
Informations personnelles :
Nom : Homme Maxime Estrade
Âge : 23
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur en systèmes embarqués
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juillet 2009
Messages : 99
Points : 162
Points : 162
Envoyer un message via MSN à LordMacharius
Je vais me permettre d'intervenir.

Je précise que je code en C depuis un an de manière intensive (entre 50 a 90H par semaine) et que j'ai pu faire un tour d'ensemble de ce le C propose .

Je constate que le sujet parle de comment déboguer pour les débutants , or un bon nombre des messages que vous avez poster restent obscur même pour moi .

Vous avez oublié que ce qui est évident pour vous ne va pas l'être forcement pour une personne qui va vous lire par la suite .

Ensuite une bonne habitude à prendre est de faire des fonctions courtes (une trentaine de lignes pas plus), car pour déboguer il est plus simple de se pencher sur une fonction qui est courte est facilement isolable du reste du code.

Il ne faut pas hésiter à tester de manière séparé les fonctions que vous codez .
Je développe sous Unix et un bon déboguer dessus serai GDB.

L'indentation est votre amie (oui oui)

La coloration syntaxique est aussi très utile, voire indispensable.

Lire les manuels des fonctions fournis par les bibliothèques.

Ecrire en protocode (ou pseudo-code) ce que vous devez coder
Ex:
Code :
1
2
3
4
5
6
7
8
 
fonction => copier une chaine de caracteres
{
   déclarer les variables;
 
   initialiser les variables;
   etc etc .... 
}
Je ne détaille pas mais cela consiste a écrire ce que vous devez faire !

Penser que vous allez devoir libérer la mémoire alloué avec malloc() !

Penser aux différentes erreurs qui risquent de survenir ?

Créer une série de fonctions qui vérifient les valeurs de retour des fonctions système

J'ai du en oublier très certainement !
Je les rajouterais par la suite ...

Si j'ai écrit des choses pas claires pour certains, dites le moi et je me ferais un plaisir de me corriger pour être compris de tous
Edit => le bouton pour me MP est juste en dessous xD
LordMacharius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2009, 18h41   #44
J4e8a16n
Membre régulier
 
Avatar de J4e8a16n
 
Inscription : mars 2009
Messages : 179
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : mars 2009
Messages : 179
Points : 79
Points : 79
Merci à vous.


Je peux faire
int ret;
ret = strcmp(str,str1);


Je n'ignorais pas tout ce que vous avez décrit mais ce qui suis me surprend:
Citation:
Créer une série de fonctions qui vérifient les valeurs de retour des fonctions système .
Par exemple?

Citation:
Envoyé par J4e8a16n Voir le message
Bonjour à tous,
gcc -g -Wextra -Wall -pedantic -std=c99 tst.c
a.exe et non pas a.out

J'obtiens avec gcc -pg monexe
gprof monexe [ou d'autres tentatives du genre]
J'essaie d'être plus clair:

>gcc -g -Wextra -Wall -pedantic -std=c99 tst.c produit a.exe et non pas a.out (comme dans C Unleashed par exemple, ou certains tutoriels de C Developpez)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
gdb tst.exe a.exe
GNU gdb 6.6
Copyright (C) 2006 Free Software Foundation, Inc.
(no debugging symbols found)
 
warning: "C:\cygwin\home\Jean Pierre\tictactoe/a.exe": no core file handler recognize
s format, using default
warning: core file may not match specified executable file.
warning: Couldn't find general-purpose registers in core file.
warning: Couldn't find general-purpose registers in core file.
#0  0x00000000 in ?? ()
(gdb) file a.exe
warning: core file may not match specified executable file.
Reading symbols from C:\cygwin\home\Jean Pierre\tictactoe/a.exe...done.
Si j'utilise la commande file a.exe, gdb trouve les symboles qui s'y trouve.

------------------------
>gcc -pg -Wextra -Wall -pedantic -std=c99 tst.c ne produit aucun fichier pour le profilage.
>gprof tst.exe
Si je tente de 'profiler' monexe, gprof se plaint que gmon.out: No such file or directory


Est-ce tout ce que je peux espérer sous Windows Vista?

JPD
__________________
Petit Malin
"accélérateur . . . qui pousse . . . un électron a passer par deux trous d’un écran en même temps." (Cyrille Burt: "C’est mieux qu’un fantôme") (Janus p.251 )
HP Pavilion Elite m9525f Desktop PC - Vista Édition Familiale Premium SP1 64 bits - Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz - Intel 64 (EM64T), x86-64
J4e8a16n est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2009, 18h48   #45
orfix
Membre Expert
 
Avatar de orfix
 
Homme Mounir Orfi
Inscription : avril 2007
Messages : 673
Détails du profil
Informations personnelles :
Nom : Homme Mounir Orfi
Localisation : Maroc

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : avril 2007
Messages : 673
Points : 1 009
Points : 1 009
Citation:
Envoyé par J4e8a16n
J'essaie d'être plus clair:

>gcc -g -Wextra -Wall -pedantic -std=c99 tst.c produit a.exe et non pas a.out (comme dans C Unleashed par exemple, ou certains tutoriels de C Developpez)
a.out sous *nix et a.exe sous windows.
__________________
To start press any key. (reading screen) Where's the "any" key? I see Esc, Catarl, and Pig Up. There doesn't seem to be any "any" key. Wo! All this computer hacking is making me thirsty. I think I'll order a Tab. (presses TAB key). -- HOMER --
orfix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2011, 17h12   #46
MaitreEauEau
Invité de passage
 
Inscription : juillet 2009
Messages : 9
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 9
Points : 1
Points : 1
Salut,

Tu ne devrais pas éditer le premier post pour que les solutions soient facile à voir? Parce que là, il faut regarder toute la discussion et ça peut être pénible!

Tu pourrais soit réécrire au complet dans le premier post ou au moins mettre un lien avec une petite description vers ledit post.

A+
MaitreEauEau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 00h55.


 
 
 
 
Partenaires

Hébergement Web