https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119214

Robert Dubner <rdubner at symas dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rdubner at symas dot com

--- Comment #2 from Robert Dubner <rdubner at symas dot com> ---
Based on your report I am going to disable assembler messages and see what
happens.  I expect, and hope, that the resulting executables will work.

I had reasons for putting them in there.

I have been making changes to GDB so that it can be used to debug these COBOL
executables.

We've touched on the COBOL construction

0010        PERFORM FOO
0011            [...]
0020    FOO.
0021        DISPLAY "I am FOO".
0022    BAR.
0023            [...]

It behaves like a function; PERFORM FOO results in "I am FOO", and then
execution returns to line 0011.

But it is not implemented with a call.  It is implemented with goto
instructions, and the stack frame doesn't change.

This creates challenge for GDB, because when stopped at line 0010, a gdb "next"
command should cause execution to pass through FOO without stopping, and then
the next stop should be at line 0011.

I create the .proccall and .procret and _para.[...] symbols in those specific
forms so that GDB can find them in the symbol table and take appropriate
action.  .proccall and .procret give the boundaries of "next" activity, and the
.para[...] provides information that GDB can use to implement "break FOO".

I knew I would have to fix this, someday, and I guess "someday" is making its
appearance.

Instead of trying to pass metadata by using labels as a communications medium,
I now need to learn how to put arbitrary information into the ELF .debug_info
section.  And then I have to learn how to extract it from inside GDB.

Has anybody any suggestions?

Reply via email to