[C] Erreur ntdll
Résolu
Foreverson
Messages postés
244
Statut
Membre
-
Foreverson Messages postés 244 Statut Membre -
Foreverson Messages postés 244 Statut Membre -
Bonjour,
je débute en C, je travaille avec Code::Blocks sous Vista. Mon programme plantait, on m'a conseillé d'utiliser le Debuggueur, ce que j'ai fait. Je ne comprends absolument rien aux informations qu'il me renvoie : elles commencent toutes par ntdll! suivies de choses comme DbgUiConvertStateChangeStructure() ou encore RtlTimeToTimeFields.
J'ai cru comprendre que ça venait probablement d'une erreur d'adressage dans mon programme ou quelque chose du genre.
Mes malloc sont bien suivis par des free, je ne vois pas d'où peut venir l'erreur...
Je peux difficilement poster des lignes de code car mon programme est assez gros.
Dernière chose qui pourrait vous aider. Mon programme ne plantait pas jusqu'à ce que j'utilise la fonction fopen (j'ai fait attention que le pointeur sur le ficher soit non nul, et j'utilise bien fclose à la fin de l'utilisation)
Si quelqu'un peut m'aider à comprendre ce qui provoque ces messages d'erreur,
Merci d'avance
je débute en C, je travaille avec Code::Blocks sous Vista. Mon programme plantait, on m'a conseillé d'utiliser le Debuggueur, ce que j'ai fait. Je ne comprends absolument rien aux informations qu'il me renvoie : elles commencent toutes par ntdll! suivies de choses comme DbgUiConvertStateChangeStructure() ou encore RtlTimeToTimeFields.
J'ai cru comprendre que ça venait probablement d'une erreur d'adressage dans mon programme ou quelque chose du genre.
Mes malloc sont bien suivis par des free, je ne vois pas d'où peut venir l'erreur...
Je peux difficilement poster des lignes de code car mon programme est assez gros.
Dernière chose qui pourrait vous aider. Mon programme ne plantait pas jusqu'à ce que j'utilise la fonction fopen (j'ai fait attention que le pointeur sur le ficher soit non nul, et j'utilise bien fclose à la fin de l'utilisation)
Si quelqu'un peut m'aider à comprendre ce qui provoque ces messages d'erreur,
Merci d'avance
A voir également:
- [C] Erreur ntdll
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
6 réponses
le debug sous codeblock, j'ai un peu de mal. Les erreurs sont étonnantes, on dirait qu'elles vienent de dll win.
Utilises tu des bibliothèques particulière ?
As tu bien compiler ton code avec l'option de debug (-g avec gcc) ? quel est ton compilateur ?
Quel debugueur utilises tu ? (gdb avec gcc normalement, un debugueur est lié à un compilateur)
Utilises tu des bibliothèques particulière ?
As tu bien compiler ton code avec l'option de debug (-g avec gcc) ? quel est ton compilateur ?
Quel debugueur utilises tu ? (gdb avec gcc normalement, un debugueur est lié à un compilateur)
Bonjour,
Je n'utilise que des bibliothèques classiques, le compilateur (d'après ce que je comprends) c'est "GNU GCC Compiler" et la case [-g] est bien cochée, à la fois pour la compilation et le Debug.
Je dois te dire que j'y connais rien dans toutes ces options, donc si tu as questions ou des suggestions, n'hésite pas à demander.
Je n'utilise que des bibliothèques classiques, le compilateur (d'après ce que je comprends) c'est "GNU GCC Compiler" et la case [-g] est bien cochée, à la fois pour la compilation et le Debug.
Je dois te dire que j'y connais rien dans toutes ces options, donc si tu as questions ou des suggestions, n'hésite pas à demander.
donne toujours tes bibliothèques, pour être sur.
avec gdb, ça va être plus simple, je peux te guider en ligne de commande.
Tu va dans une console, tu te place dans le répertoire de ton exécutable, et tu lance :
/rep/to/gdb prog.exe
le debugueur (gdb) ouvre ton programme et fait une première petite analyse. Tu arrives alors sur un prompt.
Là tu tapes "run" et entré, ton programme se lance.
Lorsqu'il rencontre l'erreur, normalement gdb stoppe et t'affiche où il a rencontré l'erreur.
avec gdb, ça va être plus simple, je peux te guider en ligne de commande.
Tu va dans une console, tu te place dans le répertoire de ton exécutable, et tu lance :
/rep/to/gdb prog.exe
le debugueur (gdb) ouvre ton programme et fait une première petite analyse. Tu arrives alors sur un prompt.
Là tu tapes "run" et entré, ton programme se lance.
Lorsqu'il rencontre l'erreur, normalement gdb stoppe et t'affiche où il a rencontré l'erreur.
Comme bibliothèque, j'ai chargé stdlib, stdio, string et time.
Par contre si on peut éviter les commandes console, j'suis pas très à l'aise avec ça en fait.
Encore moins sous Windows.
J'ai une question sur les malloc. J'ai vu certaines fois des "cast "avant des malloc, exemple :
int * pointeur=(int *) malloc (sizeof(int));
Dans mon programme, je n'ai aucun "cast" de malloc, ça sert à quoi ce cast ?
Par contre si on peut éviter les commandes console, j'suis pas très à l'aise avec ça en fait.
Encore moins sous Windows.
J'ai une question sur les malloc. J'ai vu certaines fois des "cast "avant des malloc, exemple :
int * pointeur=(int *) malloc (sizeof(int));
Dans mon programme, je n'ai aucun "cast" de malloc, ça sert à quoi ce cast ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question