Ça se passe sous Linux Ubuntu HH, avec gcc et gdb. En bref, j'ai deux fichiers
source, que j'ai tenté de réduire au minimum pour que mon problème demeure
reproductible.
L'un, une fois compilé avec gcc -g peut me montrer les infos de débogage MAIS si
j'ampute le fichier source de quelques caractères non imprimables (saut de ligne
et espaces), quand je compile avec gcc -g, plus aucune info de débogage lisible.
Avez-vous déjà rencontré ça ?
Je précise que le même fichier pose les mêmes problèmes sous Windows compilé
avec Mingw (gcc pour Windows). Par contre, sous Visual, le débogueur fonctionne.
Je n'ai pas essayé avec d'autres compilateurs genre Open Watcom.
Mes sources sont en UTF-8.
Plus précisément, voici les sources et les symptomes (copies de console) :
-------- a_deboguerOUI.c --------------------------------------
/* int f(int b) { } */ int main(void) { return 0; }}
---------------------------------------------------------------
candide@candide-desktop:~$ gcc -g -W -Wall -std=c99 -pedantic -o x a_deboguerOUI.c
candide@candide-desktop:~$ ./x
candide@candide-desktop:~$ gdb x
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) list
1 /*^Mint f(int b)^M{^M ^M}^M*/^Mint main(void)^M{ ^M return 0;^M}
(gdb)
-------- a_deboguerNON.c --------------------------------------
/* int f(int b) { } */ int main(void) { return 0; }
---------------------------------------------------------------
candide@candide-desktop:~$ gcc -g -W -Wall -std=c99 -pedantic -o x a_deboguerNO.c
candide@candide-desktop:~$ gdb x
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) list
Line number 2
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
-ed- a écrit :
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes
sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte
n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
candide
-ed- a écrit :
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore comment tu essayes de te faire passer pour un scientifique rigoureux à peu de frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
-ed- a écrit :
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore
comment tu essayes de te faire passer pour un scientifique rigoureux à peu de
frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore comment tu essayes de te faire passer pour un scientifique rigoureux à peu de frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
espie
In article <49a9431c$0$24233$, candide wrote:
-ed- a écrit :
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore comment tu essayes de te faire passer pour un scientifique rigoureux à peu de frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses outils pourris, mais sans bidouillage non controle de ta part, je ne vois vraiment pas comment tu peux finir dans une situation pareille.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement impossible que tu te sois retrouve dans une situation aussi grotesque "par hasard".
In article <49a9431c$0$24233$426a74cc@news.free.fr>,
candide <candide@free.invalid> wrote:
-ed- a écrit :
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore
comment tu essayes de te faire passer pour un scientifique rigoureux à peu de
frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton
fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment
pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses
outils pourris, mais sans bidouillage non controle de ta part, je ne vois
vraiment pas comment tu peux finir dans une situation pareille.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens
pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et
ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement
impossible que tu te sois retrouve dans une situation aussi grotesque
"par hasard".
Il n'y a aucune raison que tu ais des 0d 'par hasard'.
demandé en agissant sur sa configuration. Pas de place pour le hasard.
T'es vraiment quelqu'un de conflictuel avec tes allusions lourdingues. J'adore comment tu essayes de te faire passer pour un scientifique rigoureux à peu de frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses outils pourris, mais sans bidouillage non controle de ta part, je ne vois vraiment pas comment tu peux finir dans une situation pareille.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement impossible que tu te sois retrouve dans une situation aussi grotesque "par hasard".
candide
Marc Espie a écrit : frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
De quoi pourrais-je bien être vexé en l'espèce ? Par contre qu'Emmanuel Delahaye essaye à peu de frais et sur mon dos de se faire passer pour le détenteur de la Rigueur, oui, ça va me faire réagir parce que je connais l'envergure du bonhomme et vu son amabilité naturelle, je vais pas lui faire de cadeau. Qu'est-ce qu'il a dit de consistant ? Rien, il a enfoncé des portes ouvertes : je m'en doute que ce n'est pas arrivé là par hasard, mais est-t-on bien avancé après avoir dit un truisme pareil ? Je n'en connais pas la cause, et si j'ai fait une "connerie" comme tu dis plus loin, et alors ? tu crois que je vais me culpabiliser pour autant, j'ai utilisé mon éditeur et ma distribution de la façon la plus normale qui soit, j'ai fait une connerie, ça ne me dérange pas, je suis pas du sérail. Et quant à cet "connerie" que j'aurais faite, tu as visiblement du mal à imaginer quelle pourrait en être la nature donc je ne vois pas ce que ta contribution apporte.
Par contre, des conseils d'Antoine, j'ai pu déduire que si je filtrais les fins de ligne avec un éditeur qui me les garantisse, je n'aurais plus de problème, ce qui me suffit. Parce que si je dois me faire une enquête pour savoir d'où viennent des foutus Od dans mes fichier texte sous Linux, je suis pas prêt de pouvoir utiliser mon débogueur tranquillement.
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses outils pourris, mais sans bidouillage non controle de ta part, je ne vois vraiment pas comment tu peux finir dans une situation pareille.
Ben oui, visiblement t'es même pas en mesure d'imaginer ce qui s'est passé. Si tu fais une recherche Google, tu verras pourtant que je ne suis pas le premier à qui ça arrive.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement impossible que tu te sois retrouve dans une situation aussi grotesque "par hasard".
T'es psycho-rigide toi aussi ? Evidemment que c'est pas par hasard, comme dirait Pangloss qui "prouvait admirablement qu’il n’y a point d’effet sans cause". Et c'est encore moins par hasard puisqu'il semble totalement exceptionnel que ça arrive sous Unix. Pourtant, je constate que tu n'as même pas l'idée d'où peut venir le problème. Tu raisonnerais pas par hasard toi ?
Si vous n'êtes pas capable de lire entre les lignes et de comprendre ce que peut signifier "par hasard" dans un certain contexte, c'est que vous devriez aller vous aérer un peu. Qu'Emmanuel Delahaye ait réagit de la sorte ne m'étonne pas du tout, c'est en rapport avec son étroitesse d'esprit et sa rigidité proverbiale. Par contre, que tu apportes de l'eau à son moulin et du bruit au bruit m'étonne bien davantage.
Marc Espie a écrit :
frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
De quoi pourrais-je bien être vexé en l'espèce ? Par contre qu'Emmanuel Delahaye
essaye à peu de frais et sur mon dos de se faire passer pour le détenteur de la
Rigueur, oui, ça va me faire réagir parce que je connais l'envergure du bonhomme
et vu son amabilité naturelle, je vais pas lui faire de cadeau. Qu'est-ce qu'il
a dit de consistant ? Rien, il a enfoncé des portes ouvertes : je m'en doute
que ce n'est pas arrivé là par hasard, mais est-t-on bien avancé après avoir dit
un truisme pareil ? Je n'en connais pas la cause, et si j'ai fait une "connerie"
comme tu dis plus loin, et alors ? tu crois que je vais me culpabiliser pour
autant, j'ai utilisé mon éditeur et ma distribution de la façon la plus normale
qui soit, j'ai fait une connerie, ça ne me dérange pas, je suis pas du sérail.
Et quant à cet "connerie" que j'aurais faite, tu as visiblement du mal à
imaginer quelle pourrait en être la nature donc je ne vois pas ce que ta
contribution apporte.
Par contre, des conseils d'Antoine, j'ai pu déduire que si je filtrais les fins
de ligne avec un éditeur qui me les garantisse, je n'aurais plus de problème, ce
qui me suffit. Parce que si je dois me faire une enquête pour savoir d'où
viennent des foutus Od dans mes fichier texte sous Linux, je suis pas prêt de
pouvoir utiliser mon débogueur tranquillement.
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton
fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment
pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses
outils pourris, mais sans bidouillage non controle de ta part, je ne vois
vraiment pas comment tu peux finir dans une situation pareille.
Ben oui, visiblement t'es même pas en mesure d'imaginer ce qui s'est passé. Si
tu fais une recherche Google, tu verras pourtant que je ne suis pas le premier à
qui ça arrive.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens
pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et
ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement
impossible que tu te sois retrouve dans une situation aussi grotesque
"par hasard".
T'es psycho-rigide toi aussi ? Evidemment que c'est pas par hasard, comme dirait
Pangloss qui "prouvait admirablement qu’il n’y a point d’effet sans cause". Et
c'est encore moins par hasard puisqu'il semble totalement exceptionnel que ça
arrive sous Unix. Pourtant, je constate que tu n'as même pas l'idée d'où peut
venir le problème. Tu raisonnerais pas par hasard toi ?
Si vous n'êtes pas capable de lire entre les lignes et de comprendre ce que peut
signifier "par hasard" dans un certain contexte, c'est que vous devriez aller
vous aérer un peu. Qu'Emmanuel Delahaye ait réagit de la sorte ne m'étonne pas
du tout, c'est en rapport avec son étroitesse d'esprit et sa rigidité
proverbiale. Par contre, que tu apportes de l'eau à son moulin et du bruit au
bruit m'étonne bien davantage.
Marc Espie a écrit : frais. Mais faudrait pas confondre rigueur scientifique et psycho-rigidité.
Tu serais pas un peu vexe, par hasard ?
De quoi pourrais-je bien être vexé en l'espèce ? Par contre qu'Emmanuel Delahaye essaye à peu de frais et sur mon dos de se faire passer pour le détenteur de la Rigueur, oui, ça va me faire réagir parce que je connais l'envergure du bonhomme et vu son amabilité naturelle, je vais pas lui faire de cadeau. Qu'est-ce qu'il a dit de consistant ? Rien, il a enfoncé des portes ouvertes : je m'en doute que ce n'est pas arrivé là par hasard, mais est-t-on bien avancé après avoir dit un truisme pareil ? Je n'en connais pas la cause, et si j'ai fait une "connerie" comme tu dis plus loin, et alors ? tu crois que je vais me culpabiliser pour autant, j'ai utilisé mon éditeur et ma distribution de la façon la plus normale qui soit, j'ai fait une connerie, ça ne me dérange pas, je suis pas du sérail. Et quant à cet "connerie" que j'aurais faite, tu as visiblement du mal à imaginer quelle pourrait en être la nature donc je ne vois pas ce que ta contribution apporte.
Par contre, des conseils d'Antoine, j'ai pu déduire que si je filtrais les fins de ligne avec un éditeur qui me les garantisse, je n'aurais plus de problème, ce qui me suffit. Parce que si je dois me faire une enquête pour savoir d'où viennent des foutus Od dans mes fichier texte sous Linux, je suis pas prêt de pouvoir utiliser mon débogueur tranquillement.
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde. Je veux bien que Windows soit buggue et ses outils pourris, mais sans bidouillage non controle de ta part, je ne vois vraiment pas comment tu peux finir dans une situation pareille.
Ben oui, visiblement t'es même pas en mesure d'imaginer ce qui s'est passé. Si tu fais une recherche Google, tu verras pourtant que je ne suis pas le premier à qui ça arrive.
En termes plus crus: tu as certainement fait une connerie. Tu ne t'en souviens pas parce que tu n'as rien compris au moment ou tu as fait la connerie, et ca va etre impossible a "retrouver" maintenant, mais c'est virtuellement impossible que tu te sois retrouve dans une situation aussi grotesque "par hasard".
T'es psycho-rigide toi aussi ? Evidemment que c'est pas par hasard, comme dirait Pangloss qui "prouvait admirablement qu’il n’y a point d’effet sans cause". Et c'est encore moins par hasard puisqu'il semble totalement exceptionnel que ça arrive sous Unix. Pourtant, je constate que tu n'as même pas l'idée d'où peut venir le problème. Tu raisonnerais pas par hasard toi ?
Si vous n'êtes pas capable de lire entre les lignes et de comprendre ce que peut signifier "par hasard" dans un certain contexte, c'est que vous devriez aller vous aérer un peu. Qu'Emmanuel Delahaye ait réagit de la sorte ne m'étonne pas du tout, c'est en rapport avec son étroitesse d'esprit et sa rigidité proverbiale. Par contre, que tu apportes de l'eau à son moulin et du bruit au bruit m'étonne bien davantage.
Antoine Leca
Le 28/02/2009 14:14, Marc Espie écrivit :
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde.
Et en fait, s'il n'avait QUE de CR dans son fichier, il aurait peut-être bien eu un averto de la part de GCC (source pas terminé par une fin de ligne ; enfin c'était comme cela en 1996 lorsque j'avais des sources Mac qui traînaient). Mais pour bien compliqué l'affaire, il y a un opportun LF tout à la fin du source.
Antoine
Le 28/02/2009 14:14, Marc Espie écrivit :
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton
fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment
pas comment tu t'es demerde.
Et en fait, s'il n'avait QUE de CR dans son fichier, il aurait peut-être
bien eu un averto de la part de GCC (source pas terminé par une fin de
ligne ; enfin c'était comme cela en 1996 lorsque j'avais des sources Mac
qui traînaient).
Mais pour bien compliqué l'affaire, il y a un opportun LF tout à la fin
du source.
J'avoue que, pour arriver a te retrouver avec *seulement* des ^M dans ton fichier, en en bossant que sur du Unix ou du Windows, je ne vois vraiment pas comment tu t'es demerde.
Et en fait, s'il n'avait QUE de CR dans son fichier, il aurait peut-être bien eu un averto de la part de GCC (source pas terminé par une fin de ligne ; enfin c'était comme cela en 1996 lorsque j'avais des sources Mac qui traînaient). Mais pour bien compliqué l'affaire, il y a un opportun LF tout à la fin du source.
Antoine
Antoine Leca
Le 28/02/2009 13:52, candide écrivit :
-ed- a écrit :
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
En fait, cela dépend de la définition que donne (dans sa documentation) l'implémentation de ce qui constitue une fin de ligne.
Si CR est accepté comme fin de ligne sans plus de commentaires, c'est un bogue.
Si CR est accepté « avec commentaires », genre « à des fins de compatibilité », la responsabilité est encore plus limitée.
Si CR n'est pas explicitement accepté (à la fois pour le compilateur et le débogueur), vu que ce n'est pas implicite puisque le standard *nix c'est LF alias NL, techniquement tu as un caractère non prévu dans le source qui ne fait partie ni d'un identificateur, d'une chaîne etc. (cf. 5.2.1), donc le comportement est indéfini.
Antoine
Le 28/02/2009 13:52, candide <candide@free.invalid> écrivit :
-ed- a écrit :
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes
sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte
n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
En fait, cela dépend de la définition que donne (dans sa documentation)
l'implémentation de ce qui constitue une fin de ligne.
Si CR est accepté comme fin de ligne sans plus de commentaires, c'est un
bogue.
Si CR est accepté « avec commentaires », genre « à des fins de
compatibilité », la responsabilité est encore plus limitée.
Si CR n'est pas explicitement accepté (à la fois pour le compilateur et
le débogueur), vu que ce n'est pas implicite puisque le standard *nix
c'est LF alias NL, techniquement tu as un caractère non prévu dans le
source qui ne fait partie ni d'un identificateur, d'une chaîne etc. (cf.
5.2.1), donc le comportement est indéfini.
Je ne comprends pas pourquoi il y a des 0d (^M) dans tes codes sources. La fin de ligne sous unixoïde, c'est 0a. Ton format texte n'est pas conforme. Le comportement est indéfini.
Euh non si j'ai bien compris, ça dépend de l'implémentation.
En fait, cela dépend de la définition que donne (dans sa documentation) l'implémentation de ce qui constitue une fin de ligne.
Si CR est accepté comme fin de ligne sans plus de commentaires, c'est un bogue.
Si CR est accepté « avec commentaires », genre « à des fins de compatibilité », la responsabilité est encore plus limitée.
Si CR n'est pas explicitement accepté (à la fois pour le compilateur et le débogueur), vu que ce n'est pas implicite puisque le standard *nix c'est LF alias NL, techniquement tu as un caractère non prévu dans le source qui ne fait partie ni d'un identificateur, d'une chaîne etc. (cf. 5.2.1), donc le comportement est indéfini.
Antoine
Stephane Legras-Decussy
"candide" a écrit dans le message de news: 49a96b2b$0$12393$
ça va me faire réagir parce que je connais l'envergure du bonhomme et vu son amabilité naturelle, je vais pas lui faire de cadeau.
les précautions oratoires, ça use le clavier et ça bouffe la bande passante...et puis on est pas sur meetic...
"candide" <candide@free.invalid> a écrit dans le message de news:
49a96b2b$0$12393$426a34cc@news.free.fr...
ça va me faire réagir parce que je connais l'envergure du bonhomme
et vu son amabilité naturelle, je vais pas lui faire de cadeau.
les précautions oratoires, ça use le clavier et ça bouffe
la bande passante...et puis on est pas sur meetic...
"candide" a écrit dans le message de news: 49a96b2b$0$12393$
ça va me faire réagir parce que je connais l'envergure du bonhomme et vu son amabilité naturelle, je vais pas lui faire de cadeau.
les précautions oratoires, ça use le clavier et ça bouffe la bande passante...et puis on est pas sur meetic...
candide
Stephane Legras-Decussy a écrit :
les précautions oratoires,
les précautions oratoires, ça montre aussi parfois qu'on a un certain sens de l'analyse, du détail et de la nuance (et du respect d'autrui accessoirement) ce qui n'est pas totalement inutile lorsque au s'intéresse au langage C.
ça use le clavier et ça bouffe la bande passante...
Concernant la bande passante, j'ai un doute ;)
Stephane Legras-Decussy a écrit :
les précautions oratoires,
les précautions oratoires, ça montre aussi parfois qu'on a un certain sens de
l'analyse, du détail et de la nuance (et du respect d'autrui accessoirement) ce
qui n'est pas totalement inutile lorsque au s'intéresse au langage C.
ça use le clavier et ça bouffe
la bande passante...
les précautions oratoires, ça montre aussi parfois qu'on a un certain sens de l'analyse, du détail et de la nuance (et du respect d'autrui accessoirement) ce qui n'est pas totalement inutile lorsque au s'intéresse au langage C.
ça use le clavier et ça bouffe la bande passante...