MinGW4.4.4、GDB 突破性成果,欢迎试用

老邓 2010-06-16 04:50:17
一、关于交叉编译的MinGW4.4.4静态版本
MinGW 4.4.4成功集成iconv,如果工程为Unicode且有汉字,可使用编译选项:-finput-charset=gbk ,已解决“no iconv implementation, cannot convert from GBK to UTF-8”错误。
下载:http://qp-gcc.googlecode.com/files/mingw-static-all-4.4.4-3.7z

二、gdb调试支持python脚本,内置python2.6.5,STL和wx数据显示大大加强!
经过与ollydbg的探讨,共同解决了gdb对python脚本的支持,且由本人完成了绿化。
经过集成python,现在对STL中的所有容器、wxWidgets的数据结构,例如wxString的的调试显示,变得容易多了。
效果:


测试代码:
#include <wx/wx.h>
#include <string>
#include <map>
#include <list>
#include <stack>
#include <vector>

int main()
{
wxString wxStr(L"wxString");
wxStr += L" Value";
std::string stdStr("std::string");
stdStr.append(" value");
std::map<int, std::string> m;
m[0] = "000";
m[1] = "111";
wxString& wxStrRef = wxStr;
wxStrRef += L" Ref";
std::string& stdStrRef = stdStr;
stdStrRef += " Ref";

std::list<std::string> l = {"a", "b", "c"};
std::vector<std::string> v = {"a", "b", "c"};

std::stack<std::string> s;
s.push("a");
s.push("b");

return 0;
}

下载(内附使用说明):
http://qp-gcc.googlecode.com/files/gdb-7.1.50.20100613withpython-7.7z

我已在LoveDEV中集成了这两个成果:
http://topic.csdn.net/u/20100530/13/ca911c06-e217-418a-85ff-155e99273f2f.html?1284
注:换用7-zip极限压缩,360可能会误报病毒。
...全文
1157 83 打赏 收藏 转发到动态 举报
写回复
用AI写文章
83 条回复
切换为时间正序
请发表友善的回复…
发表回复
ohyeah521 2010-12-01
  • 打赏
  • 举报
回复
请教老邓,能不能把这个IED的调试快捷键设置成和vc6一样的啊,用vc用习惯了,用这个很不爽。
ollydbg23 2010-07-09
  • 打赏
  • 举报
回复
另外最新版本,发布到cb论坛里面了:
[OT] ollydbg's unoffcial MinGW GDB gdb-7.2.50.20100708 with python released
ollydbg23 2010-07-09
  • 打赏
  • 举报
回复
另外,最新的GDB -cvs 整合python的版本,已经发布在我们的QQ群里面,相关的内容,可以参考:
http://topic.csdn.net/u/20100530/13/ca911c06-e217-418a-85ff-155e99273f2f.html
ollydbg23 2010-07-09
  • 打赏
  • 举报
回复
[Quote=引用 80 楼 thelot 的回复:]

dbg 问题,随便建立一个c的helloworld 程序。编译和运行都可以,但是一打开dbg就会报错.
C/C++ code

#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Hello world!\n");
return 0;
}
[/Quote]

神了,你居然还有这样的问题,不知道你的gdb和gcc都是哪里弄来的,什么版本。。。。
我这里都一切正常。
thelot 2010-07-08
  • 打赏
  • 举报
回复
dbg 问题,随便建立一个c的helloworld 程序。编译和运行都可以,但是一打开dbg就会报错.

#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Hello world!\n");
return 0;
}





老邓 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 78 楼 ollydbg23 的回复:]

引用 77 楼 loaden 的回复:

ollydbg通过修改gdb的源码,已经搞定了gdb在加入python支持后的假死问题。
庆祝下!感谢ollydbg!!


你可以把我修改gdb代码后,你编译的那个gdb也共享出来,目前似乎这个gdb只有在我们的codeblocksQQ群里面才能下载到,呵呵。

gdb的邮件组里面,现在在讨论,如何避免因错误的python脚本,导致GD……
[/Quote]
gdb活起来容易,可是,如果python死了呢?
或者python陷入一个非常大的循环?

我觉得,你的补丁很有意义的。
ollydbg23 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 77 楼 loaden 的回复:]

ollydbg通过修改gdb的源码,已经搞定了gdb在加入python支持后的假死问题。
庆祝下!感谢ollydbg!!
[/Quote]

你可以把我修改gdb代码后,你编译的那个gdb也共享出来,目前似乎这个gdb只有在我们的codeblocksQQ群里面才能下载到,呵呵。

gdb的邮件组里面,现在在讨论,如何避免因错误的python脚本,导致GDB崩溃的问题。其实GDB应该足够强大,不管python怎么错误,GDB都应该活下来,呵呵。

看起来我的那个patch,他们并不一定接受。
老邓 2010-06-21
  • 打赏
  • 举报
回复
ollydbg通过修改gdb的源码,已经搞定了gdb在加入python支持后的假死问题。
庆祝下!感谢ollydbg!!
ollydbg23 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 74 楼 loaden 的回复:]

引用 73 楼 redleaves 的回复:

引用 58 楼 loaden 的回复:
可以修改的。
CB支持gdb命……
直接用命令也很难改list中存的对象啊...map就更麻烦了...
呵呵,因为我前一阵也在这上花了不少工夫.所以小小的建议你一下.GDB的接口不够灵活.又不直接.前端将就用用还行,效果不够理想.

但在跨平台领域,开源的调试器,只有GDB。
呵呵,只能不断……
[/Quote]
VC2008里面,如果是一个map,里面有一个string的东西,修改起来一样很麻烦。。。。我昨天试过。

另外,我现在已经在gdb,gcc, libc++, 的好几个邮件列表里面询问这个关于未初始化变量的显示问题,希望能解决掉,呵呵。

相关的讨论,大家也可以看这里:
http://sourceware.org/bugzilla/show_bug.cgi?id=11407
老邓 2010-06-17
  • 打赏
  • 举报
回复
其实,要是能获取其内存地址,修改其变量值,还是很容易的。
老邓 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 73 楼 redleaves 的回复:]

引用 58 楼 loaden 的回复:
可以修改的。
CB支持gdb命……
直接用命令也很难改list中存的对象啊...map就更麻烦了...
呵呵,因为我前一阵也在这上花了不少工夫.所以小小的建议你一下.GDB的接口不够灵活.又不直接.前端将就用用还行,效果不够理想.
[/Quote]
但在跨平台领域,开源的调试器,只有GDB。
呵呵,只能不断完善它,没办法。
不想用VC。
yzx714 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 50 楼 loaden 的回复:]

引用 49 楼 yzx714 的回复:

引用 47 楼 loaden 的回复:

引用 46 楼 yzx714 的回复:

引用 43 楼 loaden 的回复:

引用 42 楼 yzx714 的回复:
老邓把群号发给我吧,javer821@gmail.com,我来加,尽量解决吧,要是不能解决,别怪我误事就行了~
群号:102269848
多谢!!
102269848……
[/Quote]OK, 1504291475
老邓 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 49 楼 yzx714 的回复:]

引用 47 楼 loaden 的回复:

引用 46 楼 yzx714 的回复:

引用 43 楼 loaden 的回复:

引用 42 楼 yzx714 的回复:
老邓把群号发给我吧,javer821@gmail.com,我来加,尽量解决吧,要是不能解决,别怪我误事就行了~
群号:102269848
多谢!!
102269848,老邓你确认正确,似乎没这个群啊。

We……
[/Quote]
不必了,你把你的QQ号给我吧。
我给你加到群里就行了。
yzx714 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 47 楼 loaden 的回复:]

引用 46 楼 yzx714 的回复:

引用 43 楼 loaden 的回复:

引用 42 楼 yzx714 的回复:
老邓把群号发给我吧,javer821@gmail.com,我来加,尽量解决吧,要是不能解决,别怪我误事就行了~
群号:102269848
多谢!!
102269848,老邓你确认正确,似乎没这个群啊。

WebQQ似乎找不到,我给你回复邮件了。
可以用……
[/Quote]可是我哪有本机QQ…………等我几分钟,让我去弄台Windows……
jadedrip 2010-06-17
  • 打赏
  • 举报
回复
虽然不用,友情支持。
老邓 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 46 楼 yzx714 的回复:]

引用 43 楼 loaden 的回复:

引用 42 楼 yzx714 的回复:
老邓把群号发给我吧,javer821@gmail.com,我来加,尽量解决吧,要是不能解决,别怪我误事就行了~
群号:102269848
多谢!!
102269848,老邓你确认正确,似乎没这个群啊。
[/Quote]
WebQQ似乎找不到,我给你回复邮件了。
可以用本机QQ查找功能。
redleaves 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 58 楼 loaden 的回复:]
可以修改的。
CB支持gdb命……
[/Quote]直接用命令也很难改list中存的对象啊...map就更麻烦了...
呵呵,因为我前一阵也在这上花了不少工夫.所以小小的建议你一下.GDB的接口不够灵活.又不直接.前端将就用用还行,效果不够理想.
昵称很不好取 2010-06-17
  • 打赏
  • 举报
回复
支持下~~
yzx714 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 70 楼 loaden 的回复:]

引用 69 楼 yzx714 的回复:

引用 68 楼 loaden 的回复:哦

引用 64 楼 yzx714 的回复:

老邓阿,明早9点,我准时弄台Windows上,不知那是你有空没?

嗯,没问题。
我们高考结束了,这几天,我除了睡觉,就在电脑前。
手上有一个项目,在忙。
我也放假了,这几天大家好好讨教讨教了~都是学生,难得假期啊~

呵呵,我是高中物理老师,……
[/Quote]额,学生撞倒老师了,失礼失礼啊…………
老邓 2010-06-17
  • 打赏
  • 举报
回复
[Quote=引用 69 楼 yzx714 的回复:]

引用 68 楼 loaden 的回复:哦

引用 64 楼 yzx714 的回复:

老邓阿,明早9点,我准时弄台Windows上,不知那是你有空没?

嗯,没问题。
我们高考结束了,这几天,我除了睡觉,就在电脑前。
手上有一个项目,在忙。
我也放假了,这几天大家好好讨教讨教了~都是学生,难得假期啊~
[/Quote]
呵呵,我是高中物理老师,教高三的。
高考结束了,我们也放假了。
加载更多回复(63)

64,701

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧