IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

[Z/OS] Décrypter un LOAD module


Sujet :

Cobol

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut [Z/OS] Décrypter un LOAD module
    Bonjour,

    je suspectes d'avoir des programmes compilés en mode debug et d'autres non, et je voulais savoir s'il est possible, à partir d'un Load module, d'avoir cette information.

    J'arrive à consulter les informations du Load module à l'aide de File master mais je suis incapable de traduire/comprendre les informations données

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Alors là...... un LOAD module, c'est directement du binaire compréhensible par la machine. Je ne suis pas spécialiste, mais je dirais que la seule différence, c'est qu'il y aura des instructions en plus en debugging mode(des displays, généralement). Mais c'est vraiment chercher une aiguille dans une botte de foin.

    A l'extrême rigueur, je te dirais de créer un programme "test", avec des displays en debugging mode, et de le compiler avec et sans debugging mode, et de voir la différence, pour ensuite rechercher ça dans le Load-module incriminé. Mais j'espère pour toi que tu lis l'hexa comme si c'était du Français.....
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    J'utilise File Master qui, je pense, lit l'hexa pour moi

    Je vois différentes informations comme par exemple
    CEEARLU REFERENCED IN IGZCBSO


    Je manque juste d'expérience pour savoir qu'elle information peux indiquer que le composant est compilé en mode debug

  4. #4
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    alors ma solution est d'autant plus pertinente : tu fais un programme qui ne fais rien(ou alors juste un move bidon histoire de), tu rajoutes un display en débug, tu compiles avec et sans debug, et tu compares ce que te dis ton outil magique pour l'un et pour l'autre(aucune idée de ce que tu vas trouver, mais ça devrait pas être pareil).

    Une fois la différence identifiée, beeen, tu regardes ce que tu as dans les vrais Load-modules.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    En fait, j'ai déja 2 versions d'un programme que je pense compilé en mode debug et no debug.

    J'ai 7000 lignes d'information pour celui que je pense compilé en debug et 1700 lignes d'informations pour que celui que je pense compile en no debug.

    Mon problème c'est que je veux vraiment être certain et connaitre cette information qui indique qu'un load est compilé en debug ou non.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    j'ai donc réalisé une comparaison entre mes 2 Loads modules et je n'ai pas trouvé grand chose de flagrant.

    J'ai remarqué que j'avais exactement les mêmes CSECT entre mes 2 Loads modules qui sont :
    - CEEARLU
    - CEEBETBL
    - CEEBINT
    - CEEBLLST
    - CEEBPIRA
    - CEEPBUBT
    - CEEBTRM
    - CEEPYRT
    - CEESG05
    - CEESTART
    - IGSZSBSO
    - Une CSECT avec le nom de mon programme

    Je ne connais pas l'utilité de chaque CSECT par contre j'ai comparé leur contenu qui semble identique sauf celle avec le nom de mon programme

    La CSECT avec le nom du programme (programme compilé en mode debug) semble afficher en clair certaines instructions (des moves de zone je pense) que n'affichent pas le programme compilé en mode no debug.

    C'est la seule différence que j'ai réussi à trouver mais si quelqu'un a des explications plus précises à apporter je suis preneur

  7. #7
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 801
    Points
    801
    Par défaut
    En lecture directe, tu ne pourras connaitre que :

    - le nom du programme compilé
    - la date et heure du link-edit
    - son hashtag

    Des outils comme PDSMAN pourront t'indiquer en plus la version du load, la date de compilation des CSECT.

    Mais en tout état de cause tu ne pourras pas savoir si le load est issu d'un programme en mode debug ou pas.

    Quel est le but de savoir ça ? Utiliser le load que tu soupçonnes n'être pas issu d'un pgm en mode debug ? Es-tu sûr pour autant que les 2 load modules ne diffèrent que par ça ? Ils peuvent très bien ne pas rendre le même service.

    .

  8. #8
    Candidat au Club
    Inscrit en
    Janvier 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Tu peux utiliser AMBLIST (prog IBM) qui analyse les load modules ou FILEAID MVS.
    Si tu veux un exemple de AMBLIST je le mes en ligne lundi ou mardi

  9. #9
    Membre averti
    Femme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2008
    Messages : 179
    Points : 350
    Points
    350
    Par défaut
    bonjour, a ma connaissance, le debugging mode Cobol est une option de compilation du moins pour le "D" en colonne 7.
    aussi je ne suis pas sure qu'à part une différence de taille de load module nous ayons de réelles différences dans les Csect.
    La seule chose qui a mon sens serait visible dans le load module serait les étiquettes paragraphes si les clauses :
    déclaratives
    debugg section. use for debugging on all procedures.
    display debug-item.
    end declaratives.
    ont été utilisées ou des littéraux de display si ces display ont été définis avec un D en colonne 7.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 26
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    tout d'abord le but de ma question était du au fait que je dois fournir à en prod des programmes issus de filière de développement et donc m'assurer que ceux ci ne sont pas compilés en mode debug, programme que je ne devéloppe ou ne teste pas par moi même.

    Ces programmes suivant un process de développement, compilation et test dans différents environnements, je souhaitais donc savoir rapidement si le programme que l'on me fournit en fin de chaine correspond à ce que j'attends sans avoir à refaire tout l'historique de la vie de ce programme.

    Concernant mes programmes et ce que j'entends par le mdoe debug, après quelques recherches j'ai compris que cela correspondait à un programme compilé avec l'option de TEST à oui.

    J'ai arrêté mes recherches sur les constats suivant :

    - la taille du LOAD qui est complètement différente entre un programme compilé avec l'option de test à oui ou à non.

    - L'affichage de l'ensemble des zones de working dans le load compilé avec l'option de test à oui qui n'apparaissent pas dans le cas contraire.

    Pour ma part je considère le problème plus ou moins résolu avec encore quelques zones d'ombres, donc si jamais vous avez des informations complémentaires à apporter je ne dirais pas non

    Merci pour votre aide.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 107
    Points : 92
    Points
    92
    Par défaut debugging mode
    il me semble que lorsque tu montes un cobol au niveau supérieur
    par exemple d'un environnement test vers un environnement qualif
    le code est recompilé ! donc avec LE COMPILATEUR de la qualif par exemple

    Les options de ce compilateur peuvent être différentes.
    Ainsi le mode DEBUG peut être désactivé ! (d'autorité)

    Le juge de paix ce sont les sysout.
    Si tu as plein de display : tu es en debugging mode.
    Après tu te débrouilles avec tes administrateurs.

    c'était pas une question.

  12. #12
    Membre éclairé Avatar de Peut-êtreUneRéponse
    Homme Profil pro
    IT Specialist - IBM Z
    Inscrit en
    Décembre 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : IT Specialist - IBM Z
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2006
    Messages : 548
    Points : 801
    Points
    801
    Par défaut
    Citation Envoyé par duboisa Voir le message
    Si tu as plein de display : tu es en debugging mode.
    Non, tu peux avoir des DISPLAYs sans DEBUGGING-MODE.

    Ce que permet le DEBUGGING-MODE au niveau des DISPLAYs et de tout autre verbe COBOL d'ailleurs, c'est d'activer ou d'inhiber le code d'une ligne en ajoutant en colonne 7 un 'D'. En DEBUGGING-MODE ce D sera interprété comme un espace et le DISPLAY (le code) sera actif, sans DEBUGGING-MODE il sera interprété comme un * et le DISPLAY (le code) sera considéré comme du commentaire.

    .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur "Failed to load module"
    Par stratocasters dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 07/12/2012, 17h26
  2. Réponses: 1
    Dernier message: 05/07/2012, 17h43
  3. Apache Loaded Module n'apparait pas
    Par Shooter dans le forum Apache
    Réponses: 1
    Dernier message: 12/02/2009, 16h15
  4. Réponses: 0
    Dernier message: 08/11/2008, 17h57
  5. Réponses: 9
    Dernier message: 11/09/2007, 18h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo