Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

debug - Testen von POSIX-Programmen

&pagelevel(4)&pagelevel

(program debugging in forked tasks)


Das Kommando debug ermöglicht das Testen von POSIX-Programmen, die aus einer Shell heraus gestartet werden.


Syntax


Format 1:debug[ -e] program[ arguments]...
Format 2:debug[ -p] pid



Format 1:debug[ -e] program[ arguments]...


Das zu testende Programm wird in einer von der Shell durch fork erzeugten Task (Fork-Task) geladen.

Nach Abschluss des Ladevorgangs vor der ersten Befehlsausführung erhält der Anwender die Kontrolle auf BS2000-Kommando-Ebene. Als Bereitzeichen wird die Prozess-Id der Fork-Task ausgegeben (siehe auch Beispiel 1).


-e

Das Programm program wird ohne Symboltabelle geladen.

program

Name des Programms, das getestet werden soll. Das Programm muss ausführbar sein.

arguments

Argumente von program.


Format 2:debug[ -p] pid


Unterbrechen des Programms in der Task mit der Prozess-Id pid.

Das in der Fork-Task mit der Prozess-Id pid laufende Programm wird unterbrochen. Der Anwender erhält die Kontrolle auf BS2000-Kommando-Ebene. Als Bereitzeichen wird die Prozess-Id der unterbrochenen Fork-Task ausgegeben (siehe auch Beispiel 2).


-p pid

Prozess-Id der Task, die unterbrochen werden soll.

Beispiel 1

Das folgende Beispiel zeigt den Ablauf bis zum Laden des Programms, welches getestet werden soll. Nach dem Prompt pid/ ist das Programm wie nach einem /LOAD-PROGRAM-Kommando bereit zum Start. Der weitere Ablauf kann durch AID-Kommandos beeinflusst werden. Nach /RESUME-PROGRAM startet das Programm in der Fork-Task.

/START-POSIX-SHELL
$ cd myprogdir
$ ls -l myprog
-rwxr-xr-x  1  MYUSER    MYGROUP 1150976 Thu May 28 11:56:03 MSZ 2009 myprog
$ debug myprog
% AID0348 Program stopped due to EXEC event (PID=0000000055)
0000000055/

Beispiel 2

Das folgende Beispiel zeigt den Ablauf bei Unterbrechung eines bereits laufenden Programms in einer Fork-Task. Nach dem Prompt pid/ ist das Programm wie nach K2 unterbrochen. Der weitere Ablauf kann durch AID-Kommandos beeinflusst werden. Nach RESUME-PROGRAM läuft das Programm in der unterbrochenen Fork-Task weiter.

/START-POSIX-SHELL
$ ps -e
    UID  PID  PPID  C     STIME TTY        TIME  CMD
SYSROOT  243     1  0  16:32:38 term/001   0:01  [sh]
SYSROOT  245   243  0  16:33:44 term/001   0:00  [loop]
$ debug -p 245
% AID0492 %STOP was send for fork task (PID=0000000245)
$
% AID0348 Program stopped due to STOP event (PID=0000000245)
0000000245/