Remote GDB "frozen" on "info target" command

Sysprogs forums Forums VisualGDB Remote GDB "frozen" on "info target" command

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #476
    Anonymous
    Participant

    I have VisualGDB installed on Visual Studio 2012 Ultimate and I am trying to remotely build and debug via SSH to a machine on an rlogin cluster.

    Remote build is working fine.

    Remote debug hangs on “info target” command. However, when I select “Ping GDB” in the “GDB Command Timeout” dialog, everything seems to work perfectly. I am able to successfully view the output via VisualGDB Remote Control and even interact with the running program and step through the code.

    GDB Version = 7.1-29.el6_0.1

    Does anyone know what might be causing the “GDB Command Timeout” dialog for the “info target” command? The remote GDB seems to support the “info target” command.

    #2182
    adamdoyle
    Participant

    And here’s the GDB log:

    gdb --interpreter mi --args "/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/Debug/LinuxProject1"
    GNU gdb (GDB) Red Hat Enterprise Linux (7.1-29.el6_0.1)
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later 
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-redhat-linux-gnu".
    For bug reporting instructions, please see:
    ...
    Reading symbols from /tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/Debug/LinuxProject1...
    done.
    -list-features
    ^done,features=["frozen-varobjs","pending-breakpoints","thread-info","python"]
    -gdb-set stop-on-solib-events 1
    OK
    -inferior-tty-set /dev/pts/8
    OK
    -data-list-register-names
    ^done,register-names=["rax","rbx","rcx","rdx","rsi","rdi","rbp","rsp","r8","r9","r10","r11","r12","r13","r14","r15","rip","eflags","cs","ss","ds","es","fs","gs","st0","st1","st2","st3","st4","st5","st6","st7","fctrl","fstat","ftag","fiseg","fioff","foseg","fooff","fop","xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7","xmm8","xmm9","xmm10","xmm11","xmm12","xmm13","xmm14","xmm15","mxcsr","","","","","","","","","","","","","","","","","orig_rax","al","bl","cl","dl","sil","dil","bpl","spl","r8l","r9l","r10l","r11l","r12l","r13l","r14l","r15l","ah","bh","ch","dh","ax","bx","cx","dx","si","di","bp","","r8w","r9w","r10w","r11w","r12w","r13w","r14w","r15w","eax","ebx","ecx","edx","esi","edi","ebp","esp","r8d","r9d","r10d","r11d","r12d","r13d","r14d","r15d"]
    -gdb-set disassembly-flavor intel
    OK
    -gdb-set print demangle off
    OK
    -gdb-version
    GNU gdb (GDB) Red Hat Enterprise Linux (7.1-29.el6_0.1)
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-redhat-linux-gnu".
    For bug reporting instructions, please see:
    .
    OK
    info target
    &"info targetn"
    Symbols from "/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/Debug/LinuxProject1".
    Local exec file:
    `/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/Debug/LinuxProject1', file type elf64-x86-64.
    Entry point: 0x400460
    0x0000000000400200 - 0x000000000040021c is .interp
    0x000000000040021c - 0x0000000000400240 is .note.gnu.build-id
    0x0000000000400240 - 0x000000000040025c is .gnu.hash
    0x0000000000400260 - 0x00000000004002f0 is .dynsym
    0x00000000004002f0 - 0x000000000040037a is .dynstr
    0x000000000040037a - 0x0000000000400386 is .gnu.version
    0x0000000000400388 - 0x00000000004003a8 is .gnu.version_r
    0x00000000004003a8 - 0x00000000004003c0 is .rela.dyn
    0x00000000004003c0 - 0x0000000000400408 is .rela.plt
    0x0000000000400408 - 0x0000000000400420 is .init
    0x0000000000400420 - 0x0000000000400460 is .plt
    0x0000000000400460 - 0x0000000000400666 is .text
    0x0000000000400668 - 0x0000000000400676 is .fini
    0x0000000000400676 - 0x0000000000400687 is .rodata
    0x0000000000400688 - 0x00000000004006ac is .eh_frame_hdr
    0x00000000004006b0 - 0x000000000040072c is .eh_frame
    0x0000000000600730 - 0x0000000000600740 is .ctors
    0x0000000000600740 - 0x0000000000600750 is .dtors
    0x0000000000600750 - 0x0000000000600758 is .jcr
    0x0000000000600758 - 0x0000000000600928 is .dynamic
    0x0000000000600928 - 0x0000000000600930 is .got
    0x0000000000600930 - 0x0000000000600960 is .got.plt
    0x0000000000600960 - 0x0000000000600970 is .bss
    OK
    -break-insert -f /tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c:5
    ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400551",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5",times="0",original-location="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c:5"}
    -exec-run
    =thread-group-created,id="6500"
    =thread-created,id="1",group-id="6500"
    ^running
    *running,thread-id="all"
    =library-loaded,id="/lib64/ld-linux-x86-64.so.2",target-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0"
    Stopped due to shared library event
    *stopped,thread-id="1",stopped-threads="all",core="11"
    -break-list
    ^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400551",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5",times="0",original-location="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c:5"}]}
    -exec-continue
    ^running
    *running,thread-id="1"
    =library-loaded,id="/usr/lib64/libstdc++.so.6",target-name="/usr/lib64/libstdc++.so.6",host-name="/usr/lib64/libstdc++.so.6",symbols-loaded="0"
    =library-loaded,id="/lib64/libm.so.6",target-name="/lib64/libm.so.6",host-name="/lib64/libm.so.6",symbols-loaded="0"
    =library-loaded,id="/lib64/libgcc_s.so.1",target-name="/lib64/libgcc_s.so.1",host-name="/lib64/libgcc_s.so.1",symbols-loaded="0"
    =library-loaded,id="/lib64/libc.so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0"
    Stopped due to shared library event
    *stopped,thread-id="1",stopped-threads="all",core="11"
    -break-list
    ^done,BreakpointTable={nr_rows="1",nr_cols="6",hdr=[{width="7",alignment="-1",col_name="number",colhdr="Num"},{width="14",alignment="-1",col_name="type",colhdr="Type"},{width="4",alignment="-1",col_name="disp",colhdr="Disp"},{width="3",alignment="-1",col_name="enabled",colhdr="Enb"},{width="18",alignment="-1",col_name="addr",colhdr="Address"},{width="40",alignment="2",col_name="what",colhdr="What"}],body=[bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400551",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5",times="0",original-location="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c:5"}]}
    -exec-continue
    ^running
    *running,thread-id="1"
    *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0000000000400551",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400551",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400551",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400551",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -data-evaluate-expression "sizeof(void *)"
    ^done,value="8"
    -data-evaluate-expression "sizeof(int)"
    ^done,value="4"
    -data-evaluate-expression "sizeof(short)"
    ^done,value="2"
    -data-evaluate-expression "sizeof(long)"
    ^done,value="8"
    -data-evaluate-expression "sizeof(long long)"
    ^done,value="8"
    -data-evaluate-expression "sizeof(char)"
    ^done,value="1"
    -data-evaluate-expression "sizeof(wchar_t)"
    No symbol "wchar_t" in current context.
    -data-evaluate-expression "sizeof(float)"
    ^done,value="4"
    -data-evaluate-expression "sizeof(double)"
    ^done,value="8"
    -data-evaluate-expression "sizeof(long double)"
    ^done,value="16"
    -stack-select-frame 0
    OK
    -stack-list-locals 0
    ^done,locals=[name="i"]
    -var-create - * "i"
    ^done,name="var1",numchild="0",value="0",type="int",thread-id="1",has_more="0"
    -stack-select-frame 0
    OK
    -exec-step
    001^done
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400571",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400571",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400571",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400571",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x0000000000400571",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x0000000000400571",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="5"}
    -stack-select-frame 0
    OK
    -exec-step
    ^running
    *running,thread-id="1"
    *stopped,reason="end-stepping-range",frame={addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"},thread-id="1",stopped-threads="all",core="11"
    -stack-list-frames
    ^done,stack=[frame={level="0",addr="0x000000000040055a",func="main",file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}]
    -stack-list-arguments 0
    ^done,stack-args=[frame={level="0",args=[name="argc",name="argv"]}]
    -thread-list-ids
    ^done,thread-ids={thread-id="1"},current-thread-id="1",number-of-threads="1"
    -thread-select 1
    ^done,new-thread-id="1",frame={level="0",addr="0x000000000040055a",func="main",args=[{name="argc",value="1"},{name="argv",value="0x7fffffffeb98"}],file="LinuxProject1.c",fullname="/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject1/LinuxProject1/LinuxProject1.c",line="7"}
    #2191
    support
    Keymaster

    Hi,

    Thanks for reporting this. Fixed in Beta 2.
    http://www.visualgdb.com/download/

    #2180
    adamdoyle
    Participant

    Hi,

    I’ve installed Beta 3 and I am still experiencing the problem. I’d be happy to provide more information if necessary.

    #2179
    support
    Keymaster

    Hi,

    Oops, sorry for that. Please provide us with the following information to pinpoint your problem:
    1. Does the problem occur on every debug session? If not, how frequently does it occur?
    2. Does the “timeout” dialog automatically disappear after 1-10 seconds? If this is a bug of LibSSH2, we have a safety mechanism that should automatically resolve such hanging within 1-10 seconds.
    3. Does invoking “info target” manually via the SSH Session window cause the same bug?

    #2181
    adamdoyle
    Participant

    @bazis wrote:

    Hi,

    Oops, sorry for that. Please provide us with the following information to pinpoint your problem:
    1. Does the problem occur on every debug session? If not, how frequently does it occur?
    2. Does the “timeout” dialog automatically disappear after 1-10 seconds? If this is a bug of LibSSH2, we have a safety mechanism that should automatically resolve such hanging within 1-10 seconds.
    3. Does invoking “info target” manually via the SSH Session window cause the same bug?

    Hi,

    (1) Yes. It happens every time.
    (2) No, it only disappears if I intervene by pressing “Abort Command,” “Stop debugging,” or “Ping GDB.” If I press “Ping GDB,” however, I can step through commands and everything seems to work normally.
    (3) If I invoke “info target” via the “GDB Session” tab, it does cause the same “GDB Command Timeout” dialog to appear. However, this time, pressing “Ping GDB” has a different result.

    Here is the text in the “GDB Session” window before typing the command:

    gdb --interpreter mi --args "/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject4/LinuxProject4/Debug/LinuxProject4"

    Now I execute the following command:

    info target

    Now the “GDB Command Timeout” dialog appears and I get the following output:

    info target
    &"info targetn"
    Symbols from "/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject4/LinuxProject4/Debug/LinuxProject4".
    Unix child process:
    Using the running image of child process 24677.
    While running this, GDB does not access memory from...
    Local exec file:
    `/tmp/VisualGDB/c/RemoteGCCProjects/LinuxProject4/LinuxProject4/Debug/LiMissing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.5.x86_64 libgcc-4.4.4-13.el6.x86_64 libstdc++-4.4.4-13.el6.x86_64

    Now the “Elapsed time” for the dialog has been more than 90 seconds, so I press “Ping GDB.”
    Now, the dialog is still open and I get the following output:

    	Entry point: 0x400710
    0x0000000000400200 - 0x000000000040021c is .interp
    0x000000000040021c - 0x0000000000400240 is .note.gnu.build-id
    0x0000000000400240 - 0x0000000000400274 is .gnu.hash
    0x0000000000400278 - 0x0000000000400398 is .dynsym
    0x0000000000400398 - 0x000000000040050a is .dynstr
    0x000000000040050a - 0x0000000000400522 is .gnu.version
    0x0000000000400528 - 0x0000000000400578 is .gnu.version_r
    0x0000000000400578 - 0x00000000004005a8 is .rela.dyn
    0x00000000004005a8 - 0x0000000000400668 is .rela.plt
    0x0000000000400668 - 0x0000000000400680 is .init
    0x0000000000400680 - 0x0000000000400710 is .plt
    0x0000000000400710 - 0x0000000000400976 is .text
    0x0000000000400978 - 0x0000000000400986 is .fini
    0x0000000000400988 - 0x0000000000400990 is .rodata
    0x0000000000400990 - 0x00000000004009c4 is .eh_frame_hdr
    0x00000000004009c8 - 0x0000000000400aa4 is .eh_frame
    0x0000000000600aa8 - 0x0000000000600ac0 is .ctors
    0x0000000000600ac0 - 0x0000000000600ad0 is .dtors
    0x0000000000600ad0 - 0x0000000000600ad8 is .jcr
    0x0000000000600ad8 - 0x0000000000600ca8 is .dynamic
    0x0000000000600ca8 - 0x0000000000600cb0 is .got
    0x0000000000600cb0 - 0x0000000000600d08 is .got.plt

    Now if I press “Ping GDB” again, I get this output:

    	0x0000000000600d20 - 0x0000000000600e48 is .bss
    0x00000032b36001c8 - 0x00000032b36001ec is .note.gnu.build-id in /lib64/ld-linux-x86-64.so.2
    0x00000032b36001f0 - 0x00000032b36002a8 is .hash in /lib64/ld-linux-x86-64.so.2
    0x00000032b36002a8 - 0x00000032b3600380 is .gnu.hash in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600380 - 0x00000032b3600608 is .dynsym in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600608 - 0x00000032b3600784 is .dynstr in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600784 - 0x00000032b36007ba is .gnu.version in /lib64/ld-linux-x86-64.so.2
    0x00000032b36007c0 - 0x00000032b3600864 is .gnu.version_d in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600868 - 0x00000032b3600a00 is .rela.dyn in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600a00 - 0x00000032b3600a90 is .rela.plt in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600a90 - 0x00000032b3600b00 is .plt in /lib64/ld-linux-x86-64.so.2
    0x00000032b3600b00 - 0x00000032b36197ab is .text in /lib64/ld-linux-x86-64.so.2
    0x00000032b36197b0 - 0x00000032b3619cdb is __libc_freeres_fn in /lib64/ld-linux-x86-64.so.2

    Pressing “Ping GDB” again, gives me this output:

    	0x00000032b3820fc0 - 0x00000032b3821188 is .bss in /lib64/ld-linux-x86-64.so.2
    0x00000032ba600200 - 0x00000032ba600224 is .note.gnu.build-id in /usr/lib64/libstdc++.so.6

    And again:

    	0x00000032ba600228 - 0x00000032ba6057b4 is .gnu.hash in /usr/lib64/libstdc++.so.6
    0x00000032ba6057b8 - 0x00000032ba61a4b8 is .dynsym in /usr/lib64/libstdc++.so.6
    0x00000032ba61a4b8 - 0x00000032ba63f2ea is .dynstr in /usr/lib64/libstdc++.so.6
    0x00000032ba63f2ea - 0x00000032ba640eaa is .gnu.version in /usr/lib64/libstdc++.so.6
    0x00000032ba640eb0 - 0x00000032ba641144 is .gnu.version_d in /usr/lib64/libstdc++.so.6
    0x00000032ba641148 - 0x00000032ba641218 is .gnu.version_r in /usr/lib64/libstdc++.so.6
    0x00000032ba641218 - 0x00000032ba64fe58 is .rela.dyn in /usr/lib64/libstdc++.so.6
    0x00000032ba64fe58 - 0x00000032ba653b30 is .rela.plt in /usr/lib64/libstdc++.so.6
    0x00000032ba653b30 - 0x00000032ba653b48 is .init in /usr/lib64/libstdc++.so.6
    0x00000032ba653b48 - 0x00000032ba6563e8 is .plt in /usr/lib64/libstdc++.so.6
    0x00000032ba6563f0 - 0x00000032ba6c33f6 is .text in /usr/lib64/libstdc++.so.6
    0x00000032ba6c33f8 - 0x00000032ba6c3406 is .fini in /usr/lib64/libstdc++.so.6

    And I keep doing that until it finally finishes and gives me:

    OK

    At this point, everything seems to work and I am able to step through commands.

    #2192
    adamdoyle
    Participant

    So in other words:

    When I execute the command “info target” via the “GDB Session” tab, I have to keep pressing “Ping GDB” in the “GDB Command Timeout” dialog in order to get the output. Every time I press it, I get a small portion of the output from “info target” until finally, when the output is completed, the dialog disappears and everything seems to work normally.

    #2188
    support
    Keymaster

    Hi,

    Sorry for the delay, unsuccessfully tried to reproduce it on our side. This looks like some strange SSH protocol bug. In order to investigate it further please try the following:
    Once debugging has been started please go to the SSH session window, click on the hyperlink to start a session, then run GDB manually in the session:

    gdb

    then set a breakpoint manually, run the program and try issuing the ‘target’ command manually:

    b main
    r
    target

    Please let us know if the output of the ‘target’ command comes normally, or if you experience the same problem in the manual mode. If in the manual mode the problem does not reoccur, please rerun GDB in the MI mode:

    gdb –interpreter mi

    Although GDB output will look differently now, it will still accept normal commands. Please try running the same 3 commands to see if the ‘target’ output is incomplete.

    If you manage to reproduce the problem in the manual mode, please click at the console symbol inside the GDB session window. A multi-tabbed SSH client will be launched. Please open 2 tabs, try reproducing the frozen ‘target’ command in one tab and then see if typing anything in another tab affects the first tab.

    #2187
    adamdoyle
    Participant

    First of all, when you said issuing the “target” command, I assumed you meant “info target”, since “target” by itself doesn’t do anything (to my knowledge). Issuing “target” by itself resulted in a “usage” printout.

    I was unable to reproduce in manual mode.
    I issued the following commands:

    
    >> gdb LinuxProject8
    (gdb) b main
    (gdb) r
    (gdb) info target

    And it printed the output gracefully, without the usual “timeout” dialog.

    I moved on to try this:

    
    >> gdb --interpreter mi LinuxProject8
    (gdb) b main
    (gdb) r
    (gdb) info target

    This time, it prints some of the output, but hangs after printing: “Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.47.el6_2.5.x86_64 libgcc-4.4.4-13.el6.x86_64 libstdc++-4.4.4-13.el6.x86_64n”.
    It doesn’t give me the “(gdb)” prompt until I send it SIGINT (ctrl-c). There is no “timeout” dialog, though.

    At this point, I click the “console” symbol and launch the tabbed SSH client. I open two tabs, reproduce the hang in tab 1, type commands including “echo test”, “ls -a”, etc. in tab 2, and the tab 2 commands don’t seem to affect tab 1.

    I’d be happy to give you more information / do more tests, if necessary.

    #2189
    support
    Keymaster

    Hi,

    Thank you for running the tests and sorry for the confusion between “target” and “info target”.
    This starts looking more like a bug of your GDB or a deep SSH protocol bug. Could you please try reproducing it with another SSH client (e.g. logging on from a Linux machine or using a Windows SSH client that is not based on libssh2)?
    Could you also try a different version of GDB?

    P.S. This is normal that the ‘timeout’ dialog is not shown when you are reproducing things manually. VisualGDB only shows it when it’s in full control of the GDB session and knows when to expect a reply. This does not pertain to manually launched GDB sessions.

    #2190
    adamdoyle
    Participant

    @bazis wrote:

    Hi,

    Thank you for running the tests and sorry for the confusion between “target” and “info target”.
    This starts looking more like a bug of your GDB or a deep SSH protocol bug. Could you please try reproducing it with another SSH client (e.g. logging on from a Linux machine or using a Windows SSH client that is not based on libssh2)?
    Could you also try a different version of GDB?

    P.S. This is normal that the ‘timeout’ dialog is not shown when you are reproducing things manually. VisualGDB only shows it when it’s in full control of the GDB session and knows when to expect a reply. This does not pertain to manually launched GDB sessions.

    Same thing happens in PuTTY on Windows and OpenSSH on CentOS 6.
    When using gdb –interpreter mi , it prints a few lines, and if I hit “enter”, it prints a few more, etc.

    I’m not really sure what –interpreter mi is supposed to do, but I agree that at first glance it does seem like a GDB bug.
    Unfortunately I’m not root on our rlogin cluster, so I can’t install different versions of GDB. (unless I can “install” it to somewhere in my home directory – I’ll have to look into that)

    Here’s the version information, in case you’re curious: “GNU gdb (GDB) Red Hat Enterprise Linux (7.1-29.el6_0.1)”

    #2183
    support
    Keymaster

    Hi,

    “–interpreter mi” enables a special “machine interface” mode which is required for VisualGDB to understand its output.

    We could offer 2 workarounds for this bug:
    1. We could add a special “auto-ping” flag that will cause VisualGDB to repeat pinging GDB if a command takes too long to respond.
    2. We could add an option to disable the ‘info target’ command for a certain project. Disabling it will affect the main module name in the Threads window and module name detection in Call Stack window.

    Please let us know what’s the best for you.

    P.S. Please try building the latest GDB from source code. This should not take too much time (../gdb-version/configure && make -j<# of CPUs>), but will probably solve your problem in a much cleaner way.

    #2184
    adamdoyle
    Participant

    Presumably the “ping” button in the “timeout” dialog is having the same effect as when I hit the “enter” key while manually reproducing the problem.

    It seems like anything longer than a page (or somewhere in that ballpark) has this problem, including “info copying”, “info target”, but not commands with shorter output such as “info frame” or “info line”.
    It’s almost as though it’s trying to only give you a page at a time for readability reasons. (although maybe it’s a bug?)

    If I get a chance, I’ll test it in my local (and newer) installation of GDB to see if it has the same behavior. (although I assume it doesn’t, or else everyone would be having this problem)

    #2185
    adamdoyle
    Participant

    @bazis wrote:

    Hi,

    “–interpreter mi” enables a special “machine interface” mode which is required for VisualGDB to understand its output.

    We could offer 2 workarounds for this bug:
    1. We could add a special “auto-ping” flag that will cause VisualGDB to repeat pinging GDB if a command takes too long to respond.
    2. We could add an option to disable the ‘info target’ command for a certain project. Disabling it will affect the main module name in the Threads window and module name detection in Call Stack window.

    Please let us know what’s the best for you.

    P.S. Please try building the latest GDB from source code. This should not take too much time (../gdb-version/configure && make -j<# of CPUs>), but will probably solve your problem in a much cleaner way.

    I posted my last response before I saw your reply.

    I, personally, would prefer option (1). I will also try to build GDB from source later tonight if I get a chance.

    Thanks for you help,
    Adam

    #2186
    adamdoyle
    Participant

    Building the latest version of GDB from source and then selecting that executable in the VisualGDB project settings solved the problem for me.
    Now that everything works correctly, I’ve purchased a license.

    Thank you!

Viewing 15 posts - 1 through 15 (of 15 total)
  • You must be logged in to reply to this topic.