User forums > General (but related to Code::Blocks)

Some suggestions for C::B improvements

<< < (3/5) > >>

raynebc:
The watches column width bug has affected me for quite a while, but it doesn't seem to happen to me unless I've had the IDE open for a while.  When it bothers me I just re-open C::B and it seems to work better for a while.  Unfortunately I don't have the expertise to build the IDE with the proposed patch or to directly debug the glitch myself.

ollydbg:

--- Quote from: kevinxy on November 12, 2015, 09:29:52 pm ---It seems that you partially misunderstood me. Im using pretty printers from
share\gcc-5.1.0\python\libstdcxx\v6

They don't work with C::B because it seems their output format changed recently. Those are the printers by libstdc library developers.

--- End quote ---
I use the pretty printer from GCC's trunk svn repo, and I don't see the changed format, can you show the changes?
To demonstrate the problem, you can just copy and paste the debugger log message here(In the debugger panel, you should enable the Full(debug) log option in the debugger's setting).

oBFusCATed:

--- Quote from: kevinxy on November 12, 2015, 10:26:44 pm ---Can you point me to the files in C::B source code which parse the gdb pretty printer output?

--- End quote ---
I've tried, but the format is ambiguous.
You can start by adding tests in the debuggergdb_test_parser.cpp file.
From there you can look at the ParseGDBWatchValue function and then make the tests pass.

kevinxy:
Sure. Here it goes:

vector< vector<double> > vec2D = { {1, 2},{3, 4} ,{5}, {6} };

Debugger name and version: GNU gdb (GDB) 7.9.1
> python print(sys.version)
2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]
> print vec2D
$1 = std::vector of length 4, capacity 4 = {std::vector of length 2, capacity 2 = {1, 2}, std::vector of length 2, capacity 2 = {3, 4}, std::vector of length 1, capacity 1 = {5}, std::vector of length 1, capacity 1 = {6}}

This is not displayed correctly in the watches window.

ollydbg:

--- Quote from: kevinxy on November 13, 2015, 01:52:13 am ---Sure. Here it goes:

vector< vector<double> > vec2D = { {1, 2},{3, 4} ,{5}, {6} };

Debugger name and version: GNU gdb (GDB) 7.9.1
> python print(sys.version)
2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)]
> print vec2D
$1 = std::vector of length 4, capacity 4 = {std::vector of length 2, capacity 2 = {1, 2}, std::vector of length 2, capacity 2 = {3, 4}, std::vector of length 1, capacity 1 = {5}, std::vector of length 1, capacity 1 = {6}}

This is not displayed correctly in the watches window.

--- End quote ---
OK, I can confirm the same issue. The watch window shows incorrectly.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version