部分参照を使用すると、指定されたデータ項目外のメモリ領域を容易に参照できます。不正な部分参照の結果は、各プログラムがアクセスするメモリ領域の場所によって異なります。
下の例では、部分参照によって、実行時に RTS エラー 114 (「メモリの境界を超えて項目にアクセスしようとしています」) が発生します。原因は、a を最大長bよりも大きい値に設定したためです。部分参照項目は、最初にソース フィールドで使用されるため、cに無効なデータが渡されます。このような問題は、この COBOL システムで検出できます。部分参照項目が 2 回目に使用される場所はターゲット フィールドであるため、さらに危険な結果を招く可能性があります。ここでも、この問題は COBOL システムによって検出され、RTS エラー 114 (「メモリの境界を超えて項目にアクセスしようとしています」) が生成されます。この後の項でもこの例を使用して、さまざまな環境でこのプログラムをデバッグする方法について説明します。
program-id. "buggy".
working-storage section.
01 a pic 9(6).
procedure division.
move 999999 to a
call "bug" using a
stop run.
end program "buggy".
program-id. "bug".
working-storage section.
01 b pic x(20).
01 c pic x.
linkage section.
01 a pic 9(6).
procedure division using a.
move b(a:1) to c
move "1" to b(a:1)
exit program.