Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Outil pour lire les messages erreur trop long ?

15 réponses
Avatar
Laurent Plagne
Bonjour,

Les messages erreurs g=E9n=E9r=E9s par la compilation de codes C++ (en
particulier avec les template) sont parfois tr=E8s long.
Avez-vous connaissance d'outils permettant d'en faciliter la lecture ?

Merci pour votre aide.

Laurent

10 réponses

1 2
Avatar
pjb
Laurent Plagne writes:
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__
Avatar
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).
Avatar
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
Avatar
espie
In article ,
Olivier Miakinen <om+ wrote:
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...
Avatar
Laurent
On 7 sep, 12:30, Michael Doubez wrote:
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
Avatar
pjb
Olivier Miakinen <om+ writes:

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__
Avatar
pjb
(Marc Espie) writes:

In article ,
Olivier Miakinen <om+ wrote:
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__
Avatar
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.
Avatar
Laurent
On 7 sep, 20:55, Fabien LE LEZ wrote:
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
Avatar
Marc
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).
1 2