cgdb terminal handling problems

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

cgdb terminal handling problems

Arthur Norman
I have a trivial C++ program, which was tested using
    g++ -g hello.cpp -o hello
    cgdb ./hello
    break main
    run

What gets displayed at that stage looks like the following where some of
the long strings of escaped have been wrapped. There are funny characters
marking "Line 5" which is where the breakpoint was.

~:
~:
1: #include <iostream>
2:
3: int main(int argc, char *argv[])
4: {
5├>    std::cout << "Hello" << std::endl;
6:     return 0;
7: }
8:
~:
~:
/home/acn1/hello.cpp
[80X[80C[?25h[?25lbreakpoints-invalid[?25h[?25l
[80X[80C[?25h[?25l[80X[80C[?25h[?25l
Breakpoint 1,[67X[67C[?25h[?25l[80X[80C[?25h[?25lmain[76X[76C[?25h[?25l ([78X[78
C[?25h[?25largc[76X[76C[?25h[?25l=[79X[79C[?25h[?25l1[79X[79C[?25h[?25l,[79X[79C
[?25h[?25largv[76X[76C[?25h[?25l=[79X[79C[?25h[?25l
[80X[80C[?25h[?25larg-value *[?25h[?25l
0xffffcc40[70X[70C[?25h[?25l)[79X[79C[?25h[?25l at[77X[77C[?25h[?25lhello.cpp[71
X[71C[?25h[?25l:[79X[79C[?25h[?25l5[79X[79C[?25h[?25l[80X[80C[?25h[?25l[?25h[?25
l
[80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l(gdb)[75
X[75C[?25h[?25l

and you can see the mess of terminal-control escapes that unhelpfully appear.
My terminal there is then not as responsive as I would like so progressing is
hard. I can go ^Z to exit and then use kill to terminate the cgdb session.
The above trasncript was collected by using COPY&PASTE from the terminal
screen. But all those "[80C" etc etc appear as characters on my terminal
just as such. When I go "echo $TERM" I see the default "xterm" and SHELL
is /bin/bash - all that is just as per the default when cygwin was
installed.

To ensure that this was not a matter of other interfering applications I
installed a totally fresh Windows 10 and then (perhaps apart from virtualbox
tools) only cygwin. For Cygwin I only install cgdb, gdb and g++, using the
latest non-testing version of each.

But having done that I tried other versions og gdb & cgdb without joy.

This sort of behaviour in cgdb seems to have arisen some time in the last few
weeks. If I back off to cygwin 3.1.1-1 I still see trouble but with
3.0.7-1 things appear to behave better for this. However with a larger
real program I just got
(gdb) step
__wrap__Znam (sz=80000000) at
/usr/src/debug/cygwin-3.0.7-1/winsup/cygwin/libstd
cxx_wrapper.cc:61
(gdb) s
/wip/cygport-git/gdb/gdb-8.2.1-1.x86_64/src/gdb-8.2.1/gdb/infrun.c:2723:
intern
A problem internal to GDB has been detected,
further debugging may prove unreliable.

Since that may be a metter of using an old cygwin I will wait before I try
to produce a version of that worth reporting!

But this looks like an underlying cygwin change upsetting gdb or cgdb???



[In some code of my own I was bitten because something has fairly recently
changes and the Windows call GetConsoleScreenBufferInfo now succeeds in a
cygwin program running under mintty while it used not to - I had used that test
to judge whether I could or should use Windows-mode console handling on
Unix-style... I sort of wonder if this is a variant on my problem there?]

  Arthur


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Reply | Threaded
Open this post in threaded view
|

Re: cgdb terminal handling problems

Takashi Yano
On Fri, 17 Jan 2020 16:40:03 +0000 (GMT Standard Time)
Arthur Norman wrote:

> [80X[80C[?25h[?25lbreakpoints-invalid[?25h[?25l
> [80X[80C[?25h[?25l[80X[80C[?25h[?25l
> Breakpoint 1,[67X[67C[?25h[?25l[80X[80C[?25h[?25lmain[76X[76C[?25h[?25l ([78X[78
> C[?25h[?25largc[76X[76C[?25h[?25l=[79X[79C[?25h[?25l1[79X[79C[?25h[?25l,[79X[79C
> [?25h[?25largv[76X[76C[?25h[?25l=[79X[79C[?25h[?25l
> [80X[80C[?25h[?25larg-value *[?25h[?25l
> 0xffffcc40[70X[70C[?25h[?25l)[79X[79C[?25h[?25l at[77X[77C[?25h[?25lhello.cpp[71
> X[71C[?25h[?25l:[79X[79C[?25h[?25l5[79X[79C[?25h[?25l[80X[80C[?25h[?25l[?25h[?25
> l
> [80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l(gdb)[75
> X[75C[?25h[?25l

This is obviously a pseudo console related issue.
Please give me time.

--
Takashi Yano <[hidden email]>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply | Threaded
Open this post in threaded view
|

Re: cgdb terminal handling problems

Takashi Yano
On Sat, 18 Jan 2020 13:11:40 +0900
Takashi Yano wrote:

> On Fri, 17 Jan 2020 16:40:03 +0000 (GMT Standard Time)
> Arthur Norman wrote:
> > [80X[80C[?25h[?25lbreakpoints-invalid[?25h[?25l
> > [80X[80C[?25h[?25l[80X[80C[?25h[?25l
> > Breakpoint 1,[67X[67C[?25h[?25l[80X[80C[?25h[?25lmain[76X[76C[?25h[?25l ([78X[78
> > C[?25h[?25largc[76X[76C[?25h[?25l=[79X[79C[?25h[?25l1[79X[79C[?25h[?25l,[79X[79C
> > [?25h[?25largv[76X[76C[?25h[?25l=[79X[79C[?25h[?25l
> > [80X[80C[?25h[?25larg-value *[?25h[?25l
> > 0xffffcc40[70X[70C[?25h[?25l)[79X[79C[?25h[?25l at[77X[77C[?25h[?25lhello.cpp[71
> > X[71C[?25h[?25l:[79X[79C[?25h[?25l5[79X[79C[?25h[?25l[80X[80C[?25h[?25l[?25h[?25
> > l
> > [80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l[80X[80C[?25h[?25l(gdb)[75
> > X[75C[?25h[?25l
>
> This is obviously a pseudo console related issue.
> Please give me time.

I propose a patch which able to disable the pseudo console featre
in pty, and it was accepted. With this patch, cgdb can work as
before by:

env CYGWIN=disable_pcon cgdb progname

You can also use alias

alias cgdb="env CYGWIN=disable_pcon cgdb"

Please wait for new cygwin release.

--
Takashi Yano <[hidden email]>

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple