python pretty print gdb script error on map
asmwarrior
asmwarrior@gmail.com
Sat Jun 19 02:40:00 GMT 2010
On 2010-6-18 16:29, Jonathan Wakely wrote:
> On 18 June 2010 09:01, asmwarrior wrote:
>
>> Hi, all. I have found that the python pretty print script failed to print
>> the map values. Here is the sample code:
>> Here is the gdb log: (I'm using TDM-MinGW 4.5, gdb cvs 0613 selfbuild with
>> python support, python 2.6.5 Windows XP)
>>
>> I use the py script followed from this wiki
>> http://sourceware.org/gdb/wiki/STLSupport
>>
> Does MinGW not come with the libstdc++ printers.py script?
Thanks for the reply. Now, MinGW doesn't contains any libstdc++ python
scirpts. The one I used was checked out from the GCC svn trunk.
> It is
> included in GCC 4.5 and might be a more recent version than on the GDB
> website.
>
> Your program displays fine for me with GCC 4.6 and GDB 7.1
>
>
I have a MinGW version of GCC 4.4.4 and GCC 4.5. The stdlibc++ python
scirpts (show the map content) works fine with MinGW 4.4.4. and Failed
with MinGW 4.5, so, I guess the internal implementation of GCC has
changed between versions.
>> By the way, I have found when I used python pretty printer to show the local
>> variables, there are some problems. Sometimes, gdb command "info local"
>> shows some variables that are not initialized, then gdb will get crashed,
>> because python script will resolve the wrong address when a variable is not
>> initialized. Is there any way to solve this.
>>
> That's a GDB issue, there's nothing GCC can do about that.
>
About this question. I personally think that there are some "debug
informations stored in the debugee", the that the gdb can understand
which local variables are initialized or not. Consider the bug report in
GDB.
http://sourceware.org/bugzilla/show_bug.cgi?id=11407
The latest poster has a patch to deal with the python errors, but this
is not a perfect way I think.
I also post some replies there, I just thought the "variable initialized
list" should works as C++ exception, but it seems GDB has no way to know
that debug information. So, it is possible to let GCC adding these
mechanisms? Sorry if my idea is wrong, and please correct me.
Thanks.
asmwarrior ollydbg from codeblocks' forum
More information about the Libstdc++
mailing list