PDA

View Full Version : SRCDBG aus News400



Seiten : [1] 2

Tabby
13-12-11, 12:32
Hallo zusammen,

ich hoffe hier kann mir jemand weiter helfen.
Ich habe früher immer mit dem Sourcedebugger aus der News gearbeitet.
Leider läuft der mit RPGLE Programmen nicht. Ich bekomme immer die Nachricht Fehler im Befehl.
Was muss ich ändern, damit ich auch weiterhin mit dem Sourcedebugger arbeiten kann?

Danke schon mal.

Fuerchau
13-12-11, 12:41
Ich kenne zwar den Debugger nicht, aber mit STRDBG kannst du auch Source-Debuggen.
Einzige Vorbereitung:

CRTCLPGM ... OPTION(*SRCDBG)
CRTRPGPGM ... OPTION(*SRCDBG)

CRTBNDRPG ... DBGVIEW(*SOURCE)
CRTRPGMOD ... DBGVIEW(*SOURCE)
CRTSQLRPGI ... DBGVIEW(*SOURCE)

Mittels
STRDBG PGM(MYPGM) UPDPROD(*YES) OPMSRC(*YES)
oder
STRDBG SRVPGM(MYSRVPGM) UPDPROD(*YES) OPMSRC(*YES)

kann man den System-Debugger dann starten. Dabei ist es egal ob man ILE oder OPM debugt.

ENDDBG beendet den Debugger und wenn man die Quelle verlassen hat, kann man sich diese mittels DSPMODSRC wieder zurückholen.

Breakpoints, bedingte Breakpoints, Einzelschritt, Variablen anzeigen und modifizieren, alles ist möglich.

Zur Laufzeit Programme hinzufügen oder entfernen u.v.m.

Tabby
13-12-11, 13:30
Hallo,
ich kenne den STRDBG, der wird auch von dem SRCDBG aufgerufen.
Die Crux ist nur die, ich habe hier sowohl noch RPG sowie auch RPGLE Programme. Die RPG Programme lassen sich von dem SRCDBG sehr viel besser debuggen, da er wesentlich mehr Funktionen bietet. Wenn ich ein RPGLE Programm debugge habe ich auch ganz andere Möglichkeiten, so wie Du schon beschrieben hast.

Ich hätte halt gerne ein und den selben Debugger für beide Programme mit möglichst vielen Funktionalitäten.

Gibt es da denn keine Möglichkeit?

Fuerchau
13-12-11, 13:46
Wie ich schon beschrieben habe:
Der STRDBG unterstützt beides und sogar gemischt gleichzeitig!
Lass dich nicht von der Option OPMSRC(*YES) verwirren, die gilt auch für ILE.

Sven Schneider
20-12-11, 19:44
Noch besser du nutzt den System Debugger aus der Java Toolbox.
Sofern du Client Access installiert hast, ist diese bereits auf deinem Rechner.
Aufruf geht mit (ohne Zeilenumbruch!!!):

java -classpath "C:\Programme\IBM\Client Access\jt400\lib\tes.jar;
C:\Programme\IBM\Client Access\jt400\lib\tesMri_de.jar;
C:\Programme\IBM\Client Access\JRE\lib\jhall.jar" utilities.DebugMgr

Vorher im "Grünen" STRDBGSVR aufrufen.
Dieser ist wesentlich komfortabler, bietet eine einheitliche Oberfläche für ILE/OPM (mit Syntax-Highlighting) und arbeitet zusammen mit STRDBG/DSPMODSRC.

IBM i information center (http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/index.jsp?topic=/rzamq/rzamqmain.htm)

malzusrex
21-12-11, 07:14
Morgen!

Also das interessiert mich jetzt auch.
Habe den Server gestartet. Den 3zeiler als eine Zeile in eine BAT gepackt und auf gerufen. Er macht mir ein Fenster auf.
Aber weiter tut sich nix. Ich kann kein System hinzufügen.
Was muss ich da noch machen?

Gruß
Ronald

hier mal was alles in der DOS-Box steht:

C:\Dokumente und Einstellungen\Ronald Malz\Desktop>java -classpath "C:\Programme
\IBM\Client Access\jt400\lib\tes.jar;C:\Programme\IBM\Client Access\jt400\lib\te
sMri_de.jar;C:\Programme\IBM\Client Access\JRE\lib\jhall.jar" utilities.DebugMgr

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/ibm/a
s400/access/ExtendedIllegalArgumentException
at com.ibm.iseries.debugmanager.action.DebugManagerAd dSysAction.run(Debu
gManagerAddSysAction.java:61)
at com.ibm.iseries.debug.util.Action.actionPerformed( Action.java:383)
at javax.swing.AbstractButton.fireActionPerformed(Unk nown Source)
at javax.swing.AbstractButton$Handler.actionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed (Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(Unknown Sour
ce)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent( Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(U nknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unkno wn Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectio nPrivilege(Unknown
Source)
at java.security.AccessControlContext$1.doIntersectio nPrivilege(Unknown
Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectio nPrivilege(Unknown
Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilter s(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(U nknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.ibm.as400.access.ExtendedIllega
lArgumentException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 39 more

muadeep
21-12-11, 08:38
ich benutzt nicht den Debugger bzw. das ClientAccess Verzeichnis sondern hab mir das in einem eigenen Verzeichnis zusammen gestellt!

dabei hab ich dann die "DebugMgr.bat" wie folgt angepasst!

@echo off
set CLASSPATH=%CLASSPATH%;y:\xyz\jhall.jar
set CLASSPATH=%CLASSPATH%;y:\xyz\jt400.jar
set CLASSPATH=%CLASSPATH%;y:\xyz\tes.jar
java utilities.DebugMgr


wollte die Dateien (und ein paar Screeshots für den Start, etc.) eigentlich hier als *.zip hoch laden => geht aber leider nicht, da die *.zip Datei ca 6 MB groß ist und ich hier nur max. 1 MB groß Dateien anhängen darf !!!

bei Interesse einfach pn an mich, dann schick ich sie euch per mail


PS was mich hier noch interessieren würde ist, warum die ganzen Fehlermeldungen
immer an den QSYSOPR und nicht an mich selber gehen !!!
(kann man das auch ändern?)

Sven Schneider
21-12-11, 08:50
Was hast du denn für eine Toolbox-Version ?

Ich nutze die 7.1.0.6 (=JTOpen 7.5).

Ansonsten kannst du dir alles auch von deiner AS400 aus /QIBM/ProdData/HTTP/Public/jt400/lib/ downloaden.

Im Prinzip benötigst du nur :
- Java 1.4 > oder Laufzeitumgebung (JRE).
- jt400.jar (Java Toolbox)
- jhall.jar
- tes.jar (der Debugger, + tesMri_de.jar für die deutschen Menüs)
- korrekt gesetzter classpath für die 3(4) jar's
- Aufruf bei korrekt!!! gesetztem classpath :

java utilities.DebugMgr

Sieh dir noch mal die Doku im Information Center an, welche ich oben verlinkt habe.

malzusrex
21-12-11, 09:09
Okay,

damit passt es. habe mir ein Verzeichnis angelegt, die JAR dor hin kopiert, und mit der BATCH geht es dann auch.

set CLASSPATH=%CLASSPATH%;C:\as400-debuger\jhall.jar
set CLASSPATH=%CLASSPATH%;C:\as400-debuger\jt400.jar
set CLASSPATH=%CLASSPATH%;C:\as400-debuger\tes.jar
set CLASSPATH=%CLASSPATH%;C:\as400-debuger\tesMri_de.jar
java utilities.DebugMgr


Werde mir mal den Debuger anschauen

Gruß
ROnald

Sven Schneider
21-12-11, 09:18
@Ronald
mein Fehler, hatte die jt400.jar im Aufruf vergessen, deshalb ging dein Aufruf nicht. ( die Toolbox ist bei mir im System classpath ;-) )