Outils pour utilisateurs

Outils du site


public:txm_debug

Architecture des répertoires et fichiers techniques de TXM et aide au debug

On trouve une description :

  • logs
  • préférences et configurations
  • les répertoires clés

Architecture des répertoires de TXM

Répertoire d'installation par défaut (TXMINSTALL)

  • Windows 7 : C:\Programmes\TXM-X.Y.Z
  • Linux : /usr/lib/TXM-X.Y.Z
  • Mac OS X : /Applications/TXM-X.Y.Z.app

Répertoire utilisateur TXM par défaut (TXMHOME)

Répertoire des corpus importés (=corpus binaires), des résultats, des macros, etc.

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z
  • Linux : /home/<USER>/TXM-X.Y.Z
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z

Répertoire utilisateur Eclipse RCP par défaut (workspace RCP, -data)

Ce répertoire contient les corpus binaires et les éléments habituels d'un Workspace Eclipse.

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z\corpora
  • Linux : /home/<USER>/TXM-X.Y.Z/corpora
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z/corpora

Récapitulatif des chemins et fichiers utiles par système d'exploitation

Windows 7

TODO: vérifier car il y a eu des changements depuis la 0.7.7

  • C:\Users\<USER>\TXM-X.Y.Z/corpora\corpora\.log
  • C:\Users\<USER>\TXM-X.Y.Z\REvalLogs.txt
  • C:\Users\<USER>\AppData\Roaming\TXMErrorLogs.txt
  • C:\Users\<USER>\AppData\Roaming\TXMLogs.txt
  • C:\Users\<USER>\AppData\Roaming\.txm\configuration\XXXXXXXX.log
  • C:\Users\<USER>\AppData\Roaming\.txm\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.txm.rcpapplication.prefs
  • C:\Users\<USER>\AppData\Roaming\.txm\TXM.ini
  • C:\Users\<USER>\TXM-X.Y.Z

Linux

  • TXMINSTALL="/usr/lib/TXM${VERSION}"
  • TXMHOME="$HOME/TXM${VERSIONWITHOUTSUB}"
  • DOTTXMHOME="$TXMHOME/.txm"

Mac OS X

TODO

Répertoires des objets persistés

La sauvegarde des résultats dans TXM se fait dans des fichiers .prefs stockés dans le répertoire du projet RCP (Corpus) concerné.

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z\corpora\<CORPUS>\.settings\*.prefs
  • Linux : /home/<USER>/TXM-X.Y.Z/corpora/<CORPUS>/.settings/*.prefs
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z/corpora/<CORPUS>/.settings/*.prefs

Plugins et mises à jour

Depuis TXM 0.7.7, les plugins des mises à jour ne sont plus stockés dans le dossier utilisateur RCP (.txm) mais dans le dossier d'installation de TXM.

Pour des tests rapides, notamment sans être obligé de builder une maj de type DEV, il est possible de remplacer un .class directement dans un .jar d'un plugin et de relancer TXM (testé sous Windows uniquement, avec 7zip). La fonction d'historique des majs RCP garde une copie de tous les plugins qui ont été modifiés depuis l'installation originale, ceci pour permettre les opérations de revert. Il faut donc utiliser la dernière version du .jar du plugin ciblé.

Fichiers de préférences importants

Voir et modifier les préférences

Le plugin Preference Editor permet de modifier les valeurs de préférences du scope INSTANCE, CONFIGURATION, BUNDLE (bundle_defaults) et DEFAULT ou bien d'un répertoire de projet.

Utilisation depuis Eclipse :

  • Lancer TXM en ajoutant le plugin “com.onpositive.preferences” dans la configuration de lancement (onglet plug-ins)
  • Dans TXM, aller dans le menu “Affichage > Vues”
  • dans la fenêtre ouverte sélectionner le répertoire “Preferences” puis l'entrée “Preferences”
  • La vue s'ouvre sur le scope INSTANCE
  • pour voir&modifier les préférences de corpus, il faut cliquer sur bouton “répertoire” et sélectionner le répertoire racine du corpus binaire (TXMHOME/corpora/lecorpus) MD: marche pas ?

Fichiers de préférences de chaque commande et plug-ins

Chaque modification de préférences de commande/plug-in génère un fichier .prefs dans les dossiers suivants. Ces fichiers n'existent que si au moins une valeur de préférence n'est pas égale à la valeur par défaut. Les valeurs par défaut de chaque commande/plug-in sont codées en dur dans les PreferencesInitializer de chaque plug-in.

  • Windows 7 : C:\Users\<USER>\TXM-X.X\corpora\.metadata\.plugins\org.eclipse.core.runtime\.settings
  • Linux : /home/<USER>/.txm/data/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.txm.rcpapplication.prefs
  • Mac OS X : /Users/<USER>/.txm/data/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.txm.rcpapplication.prefs

org.txm.rcpapplication.prefs

Il s'agit du fichier des préférences utilisateur de TXM. Concrètement il stocke toutes les préférences accessibles via l'UI (Tools\Parameters) du noeud “TXM”. Les préférences des autres noeuds sont stockées ailleurs [TODO].

  • Windows 7 : C:\Users\<USER>\AppData\Roaming\.txm\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.txm.rcpapplication.prefs
  • Linux : /home/<USER>/.txm/data/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.txm.rcpapplication.prefs
  • Mac OS X : /Users/<USER>/.txm/data/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.txm.rcpapplication.prefs

TXM.ini

Il s'agit du fichier de la ligne de commande de lancement de TXM (launcher equinox RCP) et permet de modifier certains arguments utiles pour le debug (comme les arguments de la JVM).

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z\.txm\TXM.ini
  • Linux : /home/<USER>/TXM-X.Y.Z/.txm/TXM.ini
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z/.txm/TXM.ini

==== install.prefs ==== Fichier d'initialisation des préférences de TXM au premier lancement. * Windows 7 : C:\Program Files\TXM\install.prefs * Linux : /usr/lib/TXM/install.prefs * Mac OS X : /Applications/TXM/install.prefs

org.txm.rcpapplication.prefs - 2

Lorsque TXM se réinstalle, une copie du précédent fichier org.txm.rcpapplication.prefs est faite dans le répertoire temporaire, ce qui permettra à TXM de le relire lors de la post-installation (Java)

  • Windows 7 :
  • Linux : /tmp
  • Mac OS X

Description des arguments de lancement

Toutes plateformes

-Xms512m -Xmx2048m
-Dfile.encoding=UTF-8
-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient4
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.connectTimeout=6000
-Dorg.eclipse.ecf.provider.filetransfer.retrieve.retryAttempts=5

Windows

-XX:MaxPermSize=256m

Description/raison :

Mac OS X

-XstartOnFirstThread 
-Dorg.eclipse.swt.internal.carbon.smallFonts

Description/raison :

Linux

-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFeel

Description/raison :

Versions des JRE embarquées

Windows

Linux

Mac OS X

  • jre-8u151-macosx-x64
    • un bug dans les versions supérieures de Java nous empêche d'upgrader le JRE. En Java 1.8 supérieur à u151, les valeurs retournées des événements du trackpad sous OS X sont erronées https://bugs.openjdk.java.net/browse/JDK-8203048.

NOTE

Démarrer TXM avec tous les logs activés dès le premier lancement après une fresh install

Cette section est aussi liée à la page https://groupes.renater.fr/wiki/txm-info/public/options_arguments_lancement.

Tests pour activer tous les logs. Après l'install, avant de lancer TXM, ouvrir le fichier [Répertoire d'installation de TXM]\install.prefs et modifier/ajouter/fusionner les lignes suivantes :

log_console=true
log_file=true
log_in_console=true
log_in_file=true
log_level=ALL
log_stacktrace=true

Démarrer le launcher Eclipse en mode console log

  1. ouvrir C:\Users\Nom Utilisateur\AppData\Roaming\.txm\TXM.ini
  2. ajouter la ligne :
    -consoleLog

    avant la ligne -vmargs

  3. lancer TXM

Démarrer TXM en mode debug

Pour démarrer et forcer le niveau de log maximum de TXM (et RCP) il faut éditer le fichier de lancement de TXM (Windows : TXM.bat, Linux : /usr/bin/TXM et MacOSX : /Applications/TXM/TXM.app/Contents/MacOSX/TXM.sh) en ajoutant les arguments suivant juste devant l'argument “-run” :

[...] TXM -run -log -debug [...]
  • -log : active le niveau de log maximum de TXM et l'écriture des logs dans un fichier
  • -debug : active le niveau de log maximum de la plateforme RCP

Il faut alors lancer TXM depuis le terminal avec le script de lancement

Démarrer la console OSGi

Linux : rediriger les sorties (y compris JNI) vers un fichier

TODO: pour avoir tous les logs ajouter “&> ~/TXM/Logs.txt” à la fin de la dernière ligne de commande du fichier /usr/bin/TXM

Particulièrement utile pour obtenir les sorties CQP sous Linux depuis un TXM installé (car sinon elles ne s'affichent nul part). Sous Windows, dans le cadre d'un TXM installé, ces sorties sont redirigés dans les fichiers TXMLogs.txt et TXMErrorLogs.txt (voir plus bas pour les chemins des fichiers). Dans le cas d'un lancement depuis Eclipse, ces sorties sont affichées dans la console Eclipse (TODO: à vérifier s'il faut ou non lancer TXM avec l'option -noredirection).

Fichiers de logs

Ci-dessous la liste et les emplacements des principaux fichiers de logs

fichier Journal

Activé dans les préférences avancées de TXM, le journal contient tous les messages de la console + les messages utilisant les méthodes severe, warning, info et fine de logs de la classe : org.txm.utils.logger.Log

Il est créé dans un fichier temporaire avec le nom : TXM_YYYY-MM-DD.log (YYYY-MM-DD, les numéro de l'année, du mois et du jour).

Le chemin du fichier est indiqué au démarrage de TXM :

Copie des messages dans /tmp/TXM-2016-07-20.log

.log

Il s'agit du fichier de log de l'application RCP, contenant le chargement des bundles/plug-ins, etc..

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z\corpora\.log
  • Linux : /home/<USER>/TXM-X.Y.Z\corpora/.metadata/.log
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z\corpora/.metadata/.log

hs_err_pidXXXXXX.log, fichier de log de crash JVM

“XXXXXX” étant le pid.

  • Windows 7 : dans le répertoire d'installation de TXM, ex. : C:\Programmes\TXM-X.Y.Z
  • Linux : /home/<USER>/hs_err_pidXXXXXX.log
  • Mac OS X :

REvalLogs.txt

Fichier contenant les commandes R appelée lors de la session, il est généré à partir du bouton “Afficher le journal” de la vue “R Variables”

  • Windows 7 : C:\Users\<USER>\TXM-X.Y.Z\REvalLogs.txt
  • Linux : /home/<USER>/TXM-X.Y.Z/REvalLogs.txt
  • Mac OS X : /Users/<USER>/TXM-X.Y.Z/REvalLogs.txt

TXMErrorLogs.txt

Fichier contenant la redirection des messages d'erreur du script de lancement de TXM

  • Windows 7 : C:\Users\<USER>\AppData\Roaming\TXMErrorLogs.txt
  • Linux : /home/<USER>/TXMErrorLogs.txt
  • Mac OS X : /Users/<USER>/TXMErrorLogs.txt

TXMLogs.txt

Fichier contenant la redirection des messages du script de lancement de TXM

Sous Win 7, ce fichier contient notamment le sdtout CQP (une fois TXM fermé).

  • Windows 7 : C:\Users\<USER>\AppData\Roaming\TXMLogs.txt
  • Linux : /home/<USER>/TXMLogs.txt
  • Mac OS X : /Users/<USER>/TXMLogs.txt

Fichier de log supplémentaire

Au lancement d'une application RCP un fichier de log temporaire est créé puis effacé si le lancement est réussi. Si le lancement échoue ce fichier ne s'efface pas et peut être utilisé pour le debug. Le fichier se situe à :

  • Windows 7 : C:\Users\<USER>\AppData\Roaming\.txm\configuration\XXXXXXXX.log
  • Linux : /home/<USER>/.txm/configuration/XXXXXXXX.log
  • Mac OS X : /Applications/TXM/configuration/XXXXXXXX.log

“XXXXXXXX” étant une suite de chiffres constituée, à confirmer, du timestamp au format Unix.

Divers

Profiler TXM avec VisualVM

Profiler TXM avec une configuration Eclipse de type Remote Java Application

TODO

Afficher la stack trace des threads de la JVM sous Mac OS X

  • “jps” pour afficher les pid des applications Java qui tournent actuellement
  • “jstack -l pid” pour dumper la pile
  • ou “jstack -l -F pid” pour forcer le dump si la première commande a échouée

Afficher les fichier cachés sous Mac

Afficher/voir les erreurs R dans TXM

TODO: à quoi sert la pref “Run RServe in debug mode” dans les prefs TXM ? Est-ce qu'elle permet d'avoir plus de logs et si oui à quel endroit, console, fichier ?

Supprimer complètement TXM

A rédiger :

Lors d'une nouvelle installation, TXM essaie de récupérer l'ancien fichier de préférences utilisateur s'il existe, ce qui peut être problématique si on veut debugger sur une fresh install.

Installation (Windows 7)

  • 1 - copie de C:\Users\<USER>\AppData\Roaming\.txm\configuration\.setting\org.txm.rcpapplication.prefs dans [TEMP]
  • 2 - supprime C:\Users\<USER>\AppData\Roaming\.txm\
  • 3 - au lancement de TXM : créé C:\Users\<USER>\AppData\Roaming\.txm\ —> fichier TXM.bat
  • 4 - a la finalisation de l'installation dans TXM : lit C:\Users\<USER>\AppData\Local\Temp\org.txm.rcpapplication.prefs (voir loadInstallPreferences(JobHandler job))

NOTE : si ce fichier n'existe pas à l'installation, il est créé à partir du fichier install.prefs du dossier d'installation de TXM au premier lancement, c'est bien ça ?

Fresh install Windows 7

  • supprimer le dossier C:\Users\<USER>\AppData\Roaming\.txm
  • supprimer le dossier C:\Users\<USER>\TXM (tous les corpus seront supprimés)
  • supprimer le dossier d'installation de TXM

Fresh install Linux

  • TODO:
  • supprimer le groupe d'utilisateurs 'txm' ?

Recharger un répertoire de corpus

Pour diverses raisons, notamment après un plantage de TXM, on peut avoir des corpus présents dans le répertoire utilisateur de TXM (Win : C:\Users\<USER>\TXM\corpora) mais qui ne sont pas chargés par TXM au démarrage. Soit ils n'apparaissent pas dans la vue “Corpus” de l'UI, soit ils apparaissent mais quand on clique une fois dessus le message “NOM DU CORPUS is not ready” apparaît dans la barre de statut de TXM et les commandes ne fonctionnent pas dessus. Voici 2 solutions pour remédier à ce problème. Attention, avant toute manipulation il est sans doute préférable de faire une copie du dossier du corpus.

Solution 1, recharger le corpus

  • aller dans le dossier des corpus du répertoire utilisateur de TXM (Win : C:\Users\<USER>\TXM\corpora)
  • zipper le dossier du corpus et le déplacer dans un dossier hors TXM
  • recharger le corpus en utilisant la commande “Fichier\Charger” et en pointant sur le fichier .zip que l'on vient de créer
  • si le message “Failed to backup the corpus to: C:\Users\<USER>\TXM\corpora\NOM_DU_CORPUS-back” apparaît lors de l'import, il faut supprimer à la main le dossier C:\Users\<USER>\TXM\corpora\NOM_DU_CORPUS avant l'import du .zip.

Solution 2, reconfigurer le corpus et le workspace TXM

  • aller dans le dossier des corpus du répertoire utilisateur de TXM (Win : C:\Users\<USER>\TXM\corpora)
  • repérer le chemin complet du corpus à restaurer, pour l'exemple ici : “C:\Users\<USER>\TXM\corpora\discours”
  • aller dans le dossier des workspace du répertoire utilisateur de TXM (Win : C:\Users\<USER>\TXM\workspaces)
  • éditer le fichier default.xml et ajouter un noeud <base file=“C:\Users\<USER>\TXM\corpora\discours\import.xml” name=“discours”/> au noeud “<bases>”
  • ouvrir le fichier “C:\Users\<USER>\TXM\corpora\discours\registry\discours” et vérifier ou modifier les variables HOME et INFO pour qu'elles pointent bien vers le bon chemin absolu du corpus, ex. :
    • HOME “C:\\Users\\<USER>\\TXM\\corpora\\discours\\data\\DISCOURS”
    • INFO “C:\\Users\\<USER>\\TXM\\corpora\\discours\\data\\DISCOURS\\.info”
  • une fois ce fichier sauvegardé, le copier/coller dans C:\Users\<USER>\TXM\registry\ et remplacer le fichier existant s'il est présent
public/txm_debug.txt · Dernière modification: 2019/07/09 16:09 par matthieu.decorde@ens-lyon.fr