| Summary: | Debug session hangs due to too much output | ||
|---|---|---|---|
| Product: | [Tools] CDT | Reporter: | Marc Khouzam <marc.khouzam> |
| Component: | cdt-debug-cdi-gdb | Assignee: | Project Inbox <cdt-debug-cdi-gdb-inbox> |
| Status: | RESOLVED WONTFIX | QA Contact: | Elena Laskavaia <elaskavaia.cdt> |
| Severity: | normal | ||
| Priority: | P3 | CC: | pawel.1.piech |
| Version: | 7.0 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows 7 | ||
| Whiteboard: | |||
The is the trailing end of the inferior console
The value of the integer variable i is 9
The value of the integer variable i is 8
The value of the integer varia*stopped,reason="end-stepping-range",frame={addr="0x004013e5",func="main",args=[],file="..\\src\\TestDSFGDB.c",fullname="C:/Users/Marc/runtime-DSFGDB/Test DSFGDB/.settings/..\\src\\TestDSFGDB.c",line="12"},thread-id="1",stopped-threads="all"
I just noticed that the inferior output also is printed in the GDB console!
I can reproduce this on Linux when I turn off "Connect I/O to terminal"
The GDB output has the *stopped event right in the middle of a printout
...
[1,273,670,114,345] out of fool 176,0
[1,273,670,114,345] out of fool 175,0
[1,273,670,114,346] out of fool 174*stopped,reason="end-stepping-range",frame={addr="0x08048c43",fun\
c="main",args=[],file="../src/DSFTestApp.cpp",fullname="/local/lmckhou/runtime-TestDSF/DSFTestApp/sr\
c/DSFTestApp.cpp",line="664"},thread-id="1",stopped-threads="all"
[1,273,670,114,346] (gdb)
(this is part of a batch change) The CDI debug implementation has been removed in CDT 9.0. Please see bug 484900 and the entry on the New and Noteworthy page https://wiki.eclipse.org/CDT/User/NewIn90#API_modifications |
When I run CDI with GDB 6.8 or 7.0 on Windows 7 (I didn't try anything else), I can hang the debug session by stepping over a method that creates a lot of output. 1- Debug the program below on Windows with CDI (maybe affects Linux too?) 2- step over the call to 'foo(0)' => the debug session hands the _inferior_ console shows a *stopped event which makes me guess that is the event that CDI misses and that is why it hangs. #include <stdio.h> void foo(int i) { if (i >= 200) return; foo(i+1); printf("The value of the integer variable i is %d\n", i); } int main() { int de = 99; foo(0); return 0; }