[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[orca-dev:00369] ORCA にて、 COBOL ソースで COMPUTE を使用するとセグメテーション違反



お疲れ様です、市川です。たびたびすいません。
ORCAにて、不可解な現象が起きていて、
どなたかこれについてご存知内でしょうか。

COBOLソース、
------------------------------------------------------------
           IF      WN1-TOGGLEBUTTON1  =  'T'
               DISPLAY '* SPA-COUNT = ' SPA-COUNT
                   UPON    CONSOLE
               COMPUTE SPA-COUNT = SPA-COUNT + 1
               MOVE    WN1-ENTRY1-VALUE
                   TO  WN1-CLIST1-VALUE1(SPA-COUNT)
               MOVE    WN1-ENTRY2-VALUE-X
                   TO  WN1-CLIST1-VALUE2(SPA-COUNT)
               MOVE    WN1-ENTRY1-VALUE
                   TO  WN1-CLIST1-VALUE3(SPA-COUNT)
               MOVE    SPA-COUNT   TO  WN1-CLIST1-COUNT
               MOVE   '選んだ'     TO  WN1-TOGGLEBUTTON1L
             ELSE
               MOVE   '選んでない' TO  WN1-TOGGLEBUTTON1L
           END-IF.
------------------------------------------------------------


や、

------------------------------------------------------------
       200-SELECT-MYUSER                SECTION.
              DISPLAY   'ID:[200-SELECT-MYUSER]'
                  UPON    CONSOLE.

           MOVE   'ichikawa'   TO  MYUSER-ID.
           PERFORM 800-DBSELECT-MYUSER.
      *
           PERFORM 800-DBFETCH-MYUSER.
              DISPLAY   'MCP : ' MCP-RC ' NOT ' ZERO
                  UPON    CONSOLE.

           MOVE   0            TO  WN1-MYUSER-COUNT.

           PERFORM VARYING I   FROM    1   BY  1
                   UNTIL   (  MCP-RC   NOT=  ZERO  )
                       OR  (  I       >      MYUSER-MAX    )

               MOVE   MYUSER-ID          TO  WN1-MYUSER-ID(I)
               MOVE   MYUSER-NAME        TO  WN1-MYUSER-NAME(I)
               MOVE   MYUSER-PASSWD      TO  WN1-MYUSER-PASSWD(I)

               DISPLAY   I ':[' WN1-MYUSER-ID(I) ']'
                   UPON    CONSOLE
               COMPUTE WN1-MYUSER-COUNT = WN1-MYUSER-COUNT + 1
		
               PERFORM 800-DBFETCH-MYUSER
           END-PERFORM.
               DISPLAY   'COUNT:[' WN1-MYUSER-COUNT ']'
                   UPON    CONSOLE 

------------------------------------------------------------

などにおいて、COMPUTE **** = ***** + **** 式を使うと、
------------------------------------------------------------
~/panda/samples/sample1/demo1$ ~/panda/aps/aps -port 9100 -record .. -lddir .. -dir ../directory -db ORCA demo1
------------------------------------------------------------
と、APSをあげたターミナルにおいて、
その処理をした際に、
------------------------------------------------------------
* SPA-COUNT = +000000000
セグメンテーション違反です
------------------------------------------------------------
とでて強制終了してしまいます。

ソースをいじって調べたところ、COMPUTE式をコメントアウトすると普通に処理が通りました。
COMPUTE式は使えないのでしょうか?
どなたかこれについてご存知の方がいらっしゃいましたら、
どうぞお知恵をお貸しください。