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

Some suggestions for C::B improvements

<< < (2/5) > >>

kevinxy:

--- Quote from: kevinxy on November 11, 2015, 01:08:04 am ---1. I have just tried removing my 'debugger initialization commands' and unchecking 'disable startup scripts'. As before, this does load the pretty printers, but C::B does not parse the output for 2D vectors correctly (1D vectors are fine)

--- End quote ---

--- Quote from: oBFusCATed on November 11, 2015, 01:15:55 am ---1. Using the python pretty printers that ship with libstdc++ this is unfixable in the current plugin, sorry.

--- End quote ---

Ok, but I don't quite get your answer because:
a) Why don't you bundle a few versions of pretty printers with code::blocks? Perhaps even more, to detect and enable the pretty printer which matches the python/gdb version.
b) I find it quite confusing that such a simple change is impossible. I might be even tempted to look at the source code. What seems to be the problem, and in what file should I be looking at?

oBFusCATed:

--- Quote from: kevinxy on November 12, 2015, 06:52:11 pm ---a) Why don't you bundle a few versions of pretty printers with code::blocks? Perhaps even more, to detect and enable the pretty printer which matches the python/gdb version.

--- End quote ---
The pretty printers bundled with cb are outdated and won't be maintained any more (probably they'll be removed in the future).
The path forward is to use the gdb pretty printers. They are written in python and are provided for more libraries and classes.
Ours has just std::vector, std::string and wxString, if I remember correctly.

If you feel that you can write pretty printers using our api for more classes - go on and try it, but don't come back to complain that
you've wasted your time, because some feature is missing or doesn't work.

We don't bundle gdb pretty printers, because generally we don't bundle sdks, libraries or frameworks. It is a job of the library writer to provide the proper pretty printers. Also there is auto loading features in gdb that can find and use the proper pretty printers.

kevinxy:
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.

I would like to take a look in the C::B source code to see whether I can fix it. But I'm asking someone to tell me (to give me a hint) which files should I be looking at.

oBFusCATed:
Do you have the "Enable watch scripts" option disabled?
Also can you enable the full log from the debugger and post a debug session and simple example that demonstrates the problem?

2d std::vectors won't work, same is for most nested std structs.

kevinxy:

--- Quote from: oBFusCATed on November 12, 2015, 09:48:57 pm ---2d std::vectors won't work, same is for most nested std structs.

--- End quote ---

Yes, that is what I would like to fix in C::B source. I would like 2D vectors with new libstdc pretty printers to display correctly in C::B.

"Enable watch scripts" option does not make any difference, this bug is still present.

Do I really need to post example code for this issue?

Can you point me to the files in C::B source code which parse the gdb pretty printer output?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version