[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.102

    Zeiger für angegebene Position nicht gesetzt.

    Hallo,

    ich suche seit einigen Stunden ein Problem, bei dem unsere Anwendung an einer bestimmten Stelle abstürzt. Im Joblog ist die erste Fehlermeldung " Zeiger für angegebene Position nicht gesetzt."

    Das deutet meiner Meinung nach auf einen nicht übergebenen Parameter hin. Hat jemand eine Idee, ob man irgendwie aus der Meldung erkennen kann, in welchem Programm der Parameter fehlt?

    Außerdem erhalte ich im Joblog den Fehler:
    Code:
    Nachrichten-ID . . . . :   CEE3201       Bewertung  . . . . . . :   10      
    Nachrichtenart . . . . :   Diagnose                                         
    Sendedatum . . . . . . :   04.06.20      Sendezeit  . . . . . . :   11:04:45
                                                                                
    Nachricht . . . :   Ausnahmerekursion erkannt.                              
    Ursache  . . . . :  Eine nicht behandelte Ausnahme ist in einer             
      Ausnahmebehandlung aufgetreten.                                           
    Fehlerbeseitigung:  Eine Ausnahme, die in der Ausnahmebehandlung auftritt,  
      darf nicht unbehandelt bleiben.
    Ich nehme an, dass das ein Folgefehler vom nicht gesetzten Zeiger ist.

    Noch ein Hinweis: Ich kann den Fehler jederzeit reproduzieren. Ich fange jetzt erstmal an, jeden Call bis zum Absturz nachzuvollziehen. Das ist aber echt aufwendig!

    Gruß,
    Dieter

  2. #2
    Registriert seit
    Oct 2006
    Beiträge
    3
    F9 im Joblog geht nicht? - da wird mir sogar die Anweisung angezeigt. (Natürlich nur solange der Job aktiv ist).

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Klar geht F9. Aber das zeigt mir nur Betriebssystemfunktionen. Ich suche "mein" Programm, in dem der Parameter fehlt. Bei F9 kommt das hier:

    Nachrichten-ID . . . . : MCH3601 Bewertung . . . . . . : 40
    Sendedatum . . . . . . : 04.06.20 Sendezeit . . . . . . : 12:26:49
    Nachrichtenart . . . . : Abbruch
    Von . . . . . . . . . : SCHRO970 CCSID . . . . . . . . : 65535

    Von Programm . . . . . . . . . : QRNXIE
    Von Bibliothek . . . . . . . : QSYS
    Von Modul . . . . . . . . . : QRNXMSG
    Von Prozedur . . . . . . . . : _QRNX_SIGNAL_EXCP
    Von Anweisung . . . . . . . : 1

    An Programm . . . . . . . . . : QRNXIE
    An Bibliothek . . . . . . . : QSYS
    An Modul . . . . . . . . . . : QRNXMSG
    An Prozedur . . . . . . . . : _QRNX_SIGNAL_EXCP
    An Anweisung . . . . . . . . : 1

    Weitere ...

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.206
    Wenn der MCH auftritt sollte der Job erst mal stehen bleiben damit man u.U. den Callstack noch ansehen kann.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Oct 2006
    Beiträge
    3
    ha! sowas hatte ich noch nicht ;-P
    sorry.
    aber wenn du an dieser Stelle bist und der Stack ja eh angehalten ist, müsste doch im Aufrufstapel dein Programm / deine Prozedur die Anweisungsnummer anzeigen.

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Erstmal vielen Dank.
    Das Programm bleibt leider nicht stehen, sondern schmiert total ab (bei mir bis zur Commando Ebene, bei den Usern zum Hauptmenü) Also bis zur letzten ACTGRP, denke ich.

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    1.973
    kannst du evtl. dem MCH3601 ein dump als (automatische / Default )Antwort geben
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Apr 2019
    Beiträge
    43
    Wenn das Programm vom CL angeschoben wird, dann könnte man strdbg aufs CL machen und warten bis das unbekannte Programm (wird ja vom CL aus gecallt) abschmiert. Dann müsste der Debugger greifen

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.102
    Vielen Dank für alle Antworten. Leider war der Programmabbruch so heftig, dass ich keine Möglichkeit gefunden habe, das Programm dort irgendwie anzuhalten. Aber nach langem Debug haben wir das Problem jetzt gefunden und beheben können.
    Das Problem steckte in einem Webservice-Aufruf, der über die LIBHTTP-Tools von Scott Klement realisiert wurde. Da hatte ein Kollege nicht mit einem negativen Returncode der http_get_url_raw - Funktion gerechnet und trotz negativem Returncode auf den Speicherbereich der Responsedaten zugegriffen. Letztlich war das Problem, dass eine RPG-Variable zu klein war, um alle Responsedaten (im JSON-Format) aufzunehmen. Jetzt haben wir die Variable wesentlich größer gemacht und reagieren außerdem auf den Responsecode. Das scheint jetzt alles zu klappen.

    Der Vertrackte an der ganzen Fehlersituation war, dass das Programm eben nicht direkt an der Stelle abgeschmiert ist, wo der Fehler im Code lag. Es sieht für mich so aus, als hätte der unsaubere Umgang mit dem Speicher an späterer Stelle (in einem ganz anderem Programm) zum Abschmieren geführt.

    So ist das eben, wenn man mit Pointern arbeitet ...

    Nochmal herzlichen Dank für alle Beiträge.

    Viele Grüße,
    Dieter

Similar Threads

  1. Zeiger für angegebene Position nicht gesetzt
    By pabloesco in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 09-08-19, 09:45
  2. MCH3601 - ZEIGER FÜR ANGEGEBENE POSITION NICHT GESETZT
    By Dominic K. in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 22-05-17, 18:34
  3. Knacknuss CNTFLD/WRDWRAP Position
    By camouflage in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 13-05-16, 13:40
  4. Antworten: 2
    Letzter Beitrag: 04-04-03, 11:26

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •