problème avec 'speedbar'

Le
Gérard Mouton
Bonjour,

avec emacs 23.1, l'utilisation de la fenêtre 'speedbar' provoque une
erreur:

Fatal error (11)Erreur de segmentation

lorsque l'on repli la liste des fonctions d'un fichier en cliquant sur
le signe [-]
Cela ne se produit que pour certains fichiers, mais à priori sans
signe particulier avec d'autres fichiers avec lesquels le défaut ne se
produit pas.

Gérard Mouton
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gérard Mouton
Le #21764301
On 13 déc, 23:06, Gérard Mouton
Bonjour,

avec emacs 23.1, l'utilisation de la fenêtre 'speedbar' provoque une
erreur:

  Fatal error (11)Erreur de segmentation

lorsque l'on repli la liste des fonctions d'un fichier en cliquant sur
le signe [-]
Cela ne se produit que pour certains fichiers, mais à priori sans
signe particulier avec d'autres fichiers avec lesquels le défaut ne se
produit pas.

Gérard Mouton



J'ai installé le version 22.3 et le défaut a disparu. Cependant (tout
comme avec la version 23.1), les instructions if, while, switch, ...
apparaissent parmi la liste des fonctions. exemple:

[-] fichier.c
documentCreer
if
if
if
while
if
voirContenu
if



Je n'ai pas trouvé de paramétrage pour n'obtenir que les fonctions
présentent dans un fichier. Est-ce une anomalie ou peut-on empêcher
'emacs' de confondre les instructions avec les fonctions?

Merci
Paul Gaborit
Le #21764291
À (at) Sun, 13 Dec 2009 14:06:29 -0800 (PST),
Gérard Mouton
avec emacs 23.1, l'utilisation de la fenêtre 'speedbar' provoque une
erreur:

Fatal error (11)Erreur de segmentation

lorsque l'on repli la liste des fonctions d'un fichier en cliquant sur
le signe [-]
Cela ne se produit que pour certains fichiers, mais à priori sans
signe particulier avec d'autres fichiers avec lesquels le défaut ne se
produit pas.



Ici, je n'ai pas ce souci.

D'où vient votre version de emacs 23.1 ? Et celle de speedbar ?
Sur quel OS ?
Avez-vous un exemple de fichier (court) causant l'erreur ?

--
Paul Gaborit -
Gérard Mouton
Le #21764281
On 15 déc, 00:17, Paul Gaborit
À (at) Sun, 13 Dec 2009 14:06:29 -0800 (PST),

Ici, je n'ai pas ce souci.

D'où vient votre version de emacs 23.1 ? Et celle de speedbar ?
Sur quel OS ?
Avez-vous un exemple de fichier (court) causant l'erreur ?

--
Paul Gaborit -


Bonjour,

J'ai récupéré les versions 23.1 et 22.3 à l'adresse "http://
ftp.gnu.org/pub/gnu/emacs/".
J'utilise linux 2.6.24, distribution slackware 10.
J'ai réinstallé la version 22.3, et le défaut apparait avec la versio n
compilée avec gtk, lucid ou motif, l'interface graphique n'est à
priori pas en cause.
La fenêtre 'speedbar' est à la version 1.0

Une certitude (car expérience répétée un grand nombre de fois), le
défaut est lié à l'utilisation de du script 'linum'. en effet, en
retirant l'instruction '(global-linum-mode t) du fichier .emacs, le
défaut disparait, même en laissant l'instruction (require 'linum).
(C'est pour cela qu'il n'est pas apparu avec la version 22.3 qui ne
possède pas linum).

Je n'ai pas réussi à discerner la raison pour laquelle il n'apparait
que sur certains fichiers, et pas d'autres. En effet, concernant l'un
des fichiers provoquant l'erreur, par exemple en retirant la fonction
A -> plus de défaut, en laissant la fonction A et retirant la fonction
B -> plus de défaut. De plus un même fichier présente ou non le déf aut
selon qu'il est placé dans un répertoire ou un autre (ça c'est
bizarre).
Je pense que le défaut est peut-être lié aux 'tags' mal formés, car
sur certains fichiers, c'est plus qu'un mélange des instructions et
des fonctions, mais apparemment n'importe quoi, par exemple le fichier
msdos.c des sources de emacs:

[-] msdos.c
{+} Class
{+} DEFUN
{+} IT_
{+} ScreenVisualBell to c
{+} do
{+} e to kill
{+} m
{+} nice to r
{+} s

et la mauvaise interprétation des tags aboutirait à un résultat
chaotique qui provoquerait parfois l'erreur de segmentation.

Je ne sais pas ce qu'utilise 'speedbar' pour fabriquer les tags, mais
depuis l'installation d'émacs, un autre éditeur installé sur la
machine n'arrive plus à utiliser 'ctags'. 'Emacs' a installé un
'ctags' dans /usr/local/bin, alors qu'il y en avait déja un dans /urs/
bin, et ils sont différents (l'un accepte l'option '-f -', mais pas
l'autre). J'ai retiré celui placé dans /usr/bin pour ne rendre actif
que celui d'émacs, mais sans résultat.
Voilà ou j'en suis.

Merci,

gérard Mouton
Gérard Mouton
Le #21764271
On 15 déc, 22:35, Gérard Mouton
Je pense que le défaut est peut-être lié aux 'tags' mal formés, c ar
sur certains fichiers, c'est plus qu'un mélange des instructions et
des fonctions, mais apparemment n'importe quoi, par exemple le fichier
msdos.c des sources de emacs:



Rectification de la bêtise que je viens de dire (je découvre emacs),
en fait les 'tags' sont regroupés, et le nom du groupe est formé de la
lettre du premier à la lettre du dernier

{+} e to kill

Mais cela n'empêche pas que les 'tags' sont (chez moi) mal formés, par
exemple

or



qui se refère au mot 'or' d'un commentaire

/* ...
the Free Software Foundation, either version 3 of the License, or
.... */

ou des tags qui ne pointe sur rien.

Gérard Mouton
Paul Gaborit
Le #21764251
À (at) Tue, 15 Dec 2009 13:35:21 -0800 (PST),
Gérard Mouton
Une certitude (car expérience répétée un grand nombre de fois), le
défaut est lié à l'utilisation de du script 'linum'. en effet, en
retirant l'instruction '(global-linum-mode t) du fichier .emacs, le
défaut disparait, même en laissant l'instruction (require 'linum).
(C'est pour cela qu'il n'est pas apparu avec la version 22.3 qui ne
possède pas linum).



Ok. N'utilisant pas linum, cela explique que je n'ai pas rencontré le
bug.

Désolé de ne pouvoir aider...

--
Paul Gaborit -
Gérard Mouton
Le #21764231
Bonjour,

Toujours pas réussi à faire fonctionner emacs, les problèmes que ce
soit avec l'interface 'dbg' ou avec la liste des fonctions dans un
fichier sont liés à l'utilisation de la fenêtre 'speedbar'. Suis-je l e
seul à avoir ces problèmes ?

Gérard Mouton
pjb
Le #21764221
Gérard Mouton
Toujours pas réussi à faire fonctionner emacs, les problèmes que ce
soit avec l'interface 'dbg' ou avec la liste des fonctions dans un
fichier sont liés à l'utilisation de la fenêtre 'speedbar'. Suis-je le
seul à avoir ces problèmes ?



Je ne sais pas. Je n'utilise pas speedbar, et je n'ai aucun problème
pour utiliser emacs.

--
__Pascal Bourguignon__ http://www.informatimago.com/
Paul Gaborit
Le #21764211
À (at) Sun, 20 Dec 2009 08:14:01 -0800 (PST),
Gérard Mouton
Toujours pas réussi à faire fonctionner emacs, les problèmes que ce
soit avec l'interface 'dbg' ou avec la liste des fonctions dans un
fichier sont liés à l'utilisation de la fenêtre 'speedbar'. Suis-je le
seul à avoir ces problèmes ?



Et toujours avec 'linum' ou non... Si c'est toujours avec 'linum',
essayez de vous en passer. Si c'est sans 'linum' alors décrivez le
problème et donnez un exemple de fichier provocant des erreurs.

--
Paul Gaborit -
Gérard Mouton
Le #21764201
On 22 déc, 12:20, Paul Gaborit
À (at) Sun, 20 Dec 2009 08:14:01 -0800 (PST),
Gérard Mouton
> Toujours pas réussi à faire fonctionner emacs, les problèmes que ce
> soit avec l'interface 'dbg' ou avec la liste des fonctions dans un
> fichier sont liés à l'utilisation de la fenêtre 'speedbar'. Suis- je le
> seul à avoir ces problèmes ?

Et toujours avec 'linum' ou non... Si c'est toujours avec 'linum',
essayez de vous en passer. Si c'est sans 'linum' alors décrivez le
problème et donnez un exemple de fichier provocant des erreurs.

--
Paul Gaborit -


Bonjour,

Je récapitule les divers problèmes:
1- avec 'linum', erreur de segmentation lorsqu'on repli la liste des
fonctions avec l'icône [-]
2- sans 'linum', en plus des fonctions d'un fichier source présentées
dans la fenêtre 'speedbar, il y a aussi parfois les instructions
telles que if, while, etc.
Je viens de trouver, il faut indenter les instructions, exemple:

int function () {
a=1;
if(b==0) ....
if(c==0) ....
}

les instructions 'if' sont prises en compte (comme des fonctions), et
on a:

function
if
if



if faut écrire comme ceci:

int function () {
a=1;
if(b==0) ....
if(c==0) ....
}

3-Avec l'interface 'gdb' par exemple pour ce fichier

typedef struct {
int nb;
char *ptr;
int na;
} Fen;

int main(int argc , char *argv[]) {
Fen fen;
fen.nb=4;
}

je met un pont d'arrêt sur la ligne 'fen.nb=4', puis demande à
afficher la variable 'fen'.
Dans la fenêtre 'speedbar':

Watch Expressions:
[+] fen Fen

En appuyant sur l'icône [+] pour voir le contenu de 'fen':

error in process filter: End of file during parsing

en retirant la variable *ptr de la structure 'Fen', le problème
disparait.

Je peux très bien me passer de 'linum' pour contourner le 1er
problème, je vais prendre l'habitude de d'indenter mes fichiers pour
éviter le 2ième problème, par contre l'interface avec 'gdb' est une
fonctionnalité qui m'intéresse beaucoup, et ne voit pas pour l'instant
comment résoudre le problème.

Merci de vos collaborations
Gérard Mouton
Le #21764191
On 22 déc 2009, 23:24, Gérard Mouton
En appuyant sur l'icône [+] pour voir le contenu de 'fen':

  error in process filter: End of file during parsing

en retirant la variable *ptr de la structure 'Fen', le problème
disparait.



Bonjour et bonne année,

Le problème intervient lors du déploiement d'une structure comportant
un pointeur non initialisé.
En résumé:
- pas de numéros en face des lignes
- obligation de respecter une indentation
- impossibilité de visualiser avec l'interface gdb les valeurs d'une
structure

J'abandonne l'utilisation d'emacs.

Gérard Mouton
Publicité
Poster une réponse
Anonyme