On Monday, October 07 2013, Simon Sobisch wrote: > Hi co-hackers,
Hi, there! > GNU Cobol (formerly OpenCOBOL) translates COBOL to C (compiling it with GCC). > We try to use GDB as debugging frontend but are unsure how some points can be > reached without actually patching the GDB (if it's possible at all). > As one of the maintainers of GNU Cobol I write to you with the hope that we > can get as far as possible. Thank you for your contact. This list, however, is not the main list of the GDB project. I strongly suggest that you post your message to <g...@sourceware.org>, because there is the official list for GDB users and developers :-). While we're at it... > A sample is attached, snippets: > > HELLO.cob: > > INSPECT user-input REPLACING TRAILING SPACES BY LOW-VALUE > MOVE SPACES TO output-msg > STRING 'Hello "' DELIMITED BY SIZE > user-input DELIMITED BY LOW-VALUE > '"!' DELIMITED BY SIZE > INTO output-msg > END-STRING > > HELLO.c[h,l.h] > > static cob_field f_6 = {80, b_6, &a_1}; /* output-msg */ > static cob_field f_7 = {50, NULL, &a_1}; /* user-input */ > > static int > HELLO_ (const int entry) > > > // [...] > > unsigned char *b_7 = NULL; /* user-input */ > > // [...] > > /* HELLO.cob:23: INSPECT */ > > cob_set_location ("HELLO", "HELLO.cob", 23, "MAIN SECTION", "MAIN > PARAGRAPH", "INSPECT"); > { > cob_inspect_init ((f_7.data = b_7, &f_7), 1); > cob_inspect_start (); > cob_inspect_trailing (&cob_low, &cob_space); > cob_inspect_finish (); > } > /* HELLO.cob:24: MOVE */ > cob_set_location ("HELLO", "HELLO.cob", 24, "MAIN SECTION", "MAIN > PARAGRAPH", "MOVE"); > { > memset (b_6, 32, 80); > } > /* HELLO.cob:25: STRING */ > cob_set_location ("HELLO", "HELLO.cob", 25, "MAIN SECTION", "MAIN > PARAGRAPH", "STRING"); > { > cob_string_init (&f_6, 0); > cob_string_delimited (0); > cob_string_append (&c_3); > cob_string_delimited (&cob_low); > cob_string_append ((f_7.data = b_7, &f_7)); > cob_string_delimited (0); > cob_string_append (&c_4); > cob_string_finish (); > } > > // [...] > } > > Not clear is how to > - let the programmer see only the COBOL source, not the C source, while > stepping > - let the programmer view/change/... COBOL variables (there is a mapping like > you can see above) > - set breakpoints within the COBOL source There's been some discussion about a related topic (IIRC it was about ultimately making GDB able to debug Python programs, for example), but I am not really sure. Does GNU Cobol generate a binary directly, or only the C translation? If it can generate binaries, then perhaps it's possible to make GDB debug the binaries directly, instead of trying to do this C <-> Cobol translation inside it. But that's just an idea, really. Please, send your message again to the Sourceware list, and we'll continue discussing it there :-). Thanks! -- Sergio