Outil pour lire les messages erreur trop long ?

Le
Laurent Plagne
Bonjour,

Les messages erreurs générés par la compilation de codes C++ (en
particulier avec les template) sont parfois très long.
Avez-vous connaissance d'outils permettant d'en faciliter la lecture ?

Merci pour votre aide.

Laurent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
pjb
Le #20085571
Laurent Plagne
Les messages erreurs générés par la compilation de codes C++ (en
particulier avec les template) sont parfois très long.
Avez-vous connaissance d'outils permettant d'en faciliter la lecture ?



emacs

Notably, it's toggle-truncate-lines command, and otherwise you can
write small emacs lisp function to properly format the error message
giving you headache.

For example, I use:

(defun pretty-print-c++-template-errors (start end)
(interactive "r")
(goto-char start)
(with-marker (end end)
(while (re-search-forward "^.*error: no matching function for call to '\(.*\)'.*$" end t)
(let ((call (match-string 1)))
(delete-region (match-beginning 0) (match-end 0))
(insert "call: ") (insert call)))
(goto-char start)
(while (and (< (point) end)
(or (re-search-forward "^.*note: \(candidates are:\|\) *\(.*\)\(\[with \(.*\)\]\)$" end t)
(re-search-forward "^.*note: \(candidates are:\|\) *\(.*\)\(\)$" end t)))
(let* ((begin0 (match-beginning 0))
(end0 (match-end 0))
(call (match-string 2))
(bind-string (match-string 4))
(bindings (and bind-string
(mapcar (lambda (binding) (split-string (string-trim " " binding) " = "))
(split-string bind-string "," t)))))
(message "bindings " bindings)
(delete-region begin0 end0)
(insert call)
(when bindings
(narrow-to-region (progn (beginning-of-line) (point)) (progn (end-of-line) (point)))
(dolist (binding bindings)
(goto-char (point-min))
(let ((pattern (format "\<%s\>" (regexp-quote (first binding)))))
(while (re-search-forward pattern (point-max) t)
(delete-region (match-beginning 0) (match-end 0))
(insert (second binding)))))
(widen))
(beginning-of-line)
(insert "cand: ")
(end-of-line)))))


to help me reading the "error: no matching function for call to" error messages.

--
__Pascal Bourguignon__
Olivier Miakinen
Le #20086001
Bonjour,

Le 07/09/2009 11:26, Pascal J. Bourguignon répondit à Laurent Plagne :

emacs

Notably, it's toggle-truncate-lines command, and otherwise you can
write small emacs lisp function to properly format the error message
giving you headache.

For example, I use:

[...]

to help me reading the "error: no matching function for call to" error messages.



Attention, Pascal, ce groupe est francophone. Note que je me demande si
ce « it's » est bien correct en anglais et s'il n'aurait pas fallu un
« its » à la place (mais c'est peut-être tout simplement parce que j'ai
compris le sens de ta réponse de travers -- il vaut vraiment mieux
répondre en français dans les groupes francophones).
Michael Doubez
Le #20086111
Laurent Plagne a écrit :
Bonjour,

Les messages erreurs générés par la compilation de codes C++ (en
particulier avec les template) sont parfois très long.
Avez-vous connaissance d'outils permettant d'en faciliter la lecture ?



Il y a STLFilt:
http://www.bdsoft.com/tools/stlfilt.html

--
Michael
espie
Le #20086561
In article Olivier Miakinen
Bonjour,

Le 07/09/2009 11:26, Pascal J. Bourguignon répondit à Laurent Plagne :

emacs

Notably, it's toggle-truncate-lines command, and otherwise you can
write small emacs lisp function to properly format the error message
giving you headache.

For example, I use:

[...]

to help me reading the "error: no matching function for call to" error


messages.

Attention, Pascal, ce groupe est francophone. Note que je me demande si
ce « it's » est bien correct en anglais et s'il n'aurait pas fallu un
« its » à la place (mais c'est peut-être tout simplement parce que j'ai
compris le sens de ta réponse de travers -- il vaut vraiment mieux
répondre en français dans les groupes francophones).



Si encore c'etait la seule faute... je ne sais pas quel petage de plomb il
nous a fait. Deja conseiller emacs a des gens qui ont encore des mains en
bon etat, c'est pas une bonne idee. Ensuite, repondre en anglais tres
approximatif dans un newsgroup francophone...
Laurent
Le #20086961
On 7 sep, 12:30, Michael Doubez
Laurent Plagne a écrit :

> Bonjour,

> Les messages erreurs générés par la compilation de codes C++ (en
> particulier avec les template) sont parfois très long.
> Avez-vous connaissance d'outils permettant d'en faciliter la lecture ?

Il y a STLFilt:http://www.bdsoft.com/tools/stlfilt.html

--
Michael



Merci pour votre aide !

Pas d'outils graphiques qui permettraient de réduire/développer les
paramètres template des patrons de classe ?

Laurent
pjb
Le #20087421
Olivier Miakinen
Bonjour,

Le 07/09/2009 11:26, Pascal J. Bourguignon répondit à Laurent Plagne :

emacs

Notably, it's toggle-truncate-lines command, and otherwise you can
write small emacs lisp function to properly format the error message
giving you headache.

For example, I use:

[...]

to help me reading the "error: no matching function for call to" error messages.



Attention, Pascal, ce groupe est francophone.



Oops, parfois je ne me rends pas compte en quelle langue j'écris ou je
parle. Désolé.


Note que je me demande si
ce « it's » est bien correct en anglais et s'il n'aurait pas fallu un
« its » à la place (mais c'est peut-être tout simplement parce que j'ai
compris le sens de ta réponse de travers -- il vaut vraiment mieux
répondre en français dans les groupes francophones).



Tout à fait, j'ai fait ici _la_ faute. C'est bien "its" qu'il
fallait lire.


--
__Pascal Bourguignon__
pjb
Le #20087411
(Marc Espie) writes:

In article Olivier Miakinen
Bonjour,

Le 07/09/2009 11:26, Pascal J. Bourguignon répondit à Laurent Plagne :

emacs

Notably, it's toggle-truncate-lines command, and otherwise you can
write small emacs lisp function to properly format the error message
giving you headache.

For example, I use:

[...]

to help me reading the "error: no matching function for call to" error


messages.

Attention, Pascal, ce groupe est francophone. Note que je me demande si
ce « it's » est bien correct en anglais et s'il n'aurait pas fallu un
« its » à la place (mais c'est peut-être tout simplement parce que j'ai
compris le sens de ta réponse de travers -- il vaut vraiment mieux
répondre en français dans les groupes francophones).



Si encore c'etait la seule faute... je ne sais pas quel petage de plomb il
nous a fait. Deja conseiller emacs a des gens qui ont encore des mains en
bon etat, c'est pas une bonne idee.



Ça, on a le choix, soit on se grille les doigts sur emacs, soit on se
pête le coude sur la souris...

Mais emacs, ça ne devrait pas être un gros problème : si on se fatique
avec certaines touches, on peut toujours réassigner ces commandes sur
d'autres touches.


Ensuite, repondre en anglais tres
approximatif dans un newsgroup francophone...



Oui, désolé.

--
__Pascal Bourguignon__
Fabien LE LEZ
Le #20089391
On Mon, 7 Sep 2009 01:26:00 -0700 (PDT), Laurent Plagne

Les messages erreurs générés par la compilation de codes C++ (en
particulier avec les template) sont parfois très long.



Quel compilateur ?
VC++ 2008 a tendance à mettre le plus important sur la première ligne.
Donc, tu lis la première ligne, tu répares le problème, et tu
re-tentes la compilation.
Laurent
Le #20089911
On 7 sep, 20:55, Fabien LE LEZ
On Mon, 7 Sep 2009 01:26:00 -0700 (PDT), Laurent Plagne

>Les messages erreurs générés par la compilation de codes C++ (en
>particulier avec les template) sont parfois très long.

Quel compilateur ?
VC++ 2008 a tendance à mettre le plus important sur la première ligne .
Donc, tu lis la première ligne, tu répares le problème, et tu
re-tentes la compilation.



J'utilise gcc le + souvent.
J'applique aussi ta stratégie (corriger les pbs en début de message
avant de recompiler) mais mon problème est que j'utilise des types
paramétrés par des type paramétrés etc....
Un simple type peut prendre beaucoup de place et j'imaginais un
système où les paramètres puissent être réduits/développés à la
souris...

Merci encore

Laurent
Marc
Le #20090531
Laurent wrote:

J'utilise gcc le + souvent.
J'applique aussi ta stratégie (corriger les pbs en début de message
avant de recompiler) mais mon problème est que j'utilise des types
paramétrés par des type paramétrés etc....
Un simple type peut prendre beaucoup de place et j'imaginais un
système où les paramètres puissent être réduits/développés à la
souris...



J'utilise souvent une technique simple : la couleur du texte est donnée
par la profondeur de template (la seule subtilité est si on veut éviter
un décallage avec les opérateurs contenant < ou >). En particulier, pour
une fonction dont le type de retour prend 3 pages, le nom de la fonction
saute aux yeux. Ça reste beaucoup moins bien qu'un système qui factorise
les sous-types, mais ça s'écrit en quelques minutes.

J'entends souvent du bien de stlfilt, mais je n'ai jamais eu l'occasion
de l'essayer (il n'est pas packagé par debian et j'ai toujous eu la
flemme de passer 1min30 à l'installer).
Publicité
Poster une réponse
Anonyme