_dopr是什么意思

时间:2011-08-22 05:35:08

标签: c++ c gdb core

我有一个gdb崩溃的垃圾堆已经撞到了dopr

这是做什么的? 我没有定义这个功能,也没有在任何地方使用调用。是libc功能吗?

[Switching to thread 1 (Thread 5339)]#0  0x00000000005f0937 in _dopr ()
(gdb) bt
#0  0x00000000005f0937 in _dopr ()
#1  0x00000000000003ff in ?? ()
#2  0x000000000111c3b0 in ?? ()
#3  0x00007fced1fe1f80 in ?? ()
#4  0x0000000000000000 in ?? ()

1 个答案:

答案 0 :(得分:4)

如评论中所述_dopr不是你的问题。你正在看的是堆栈损坏,同样,在注释中,缓冲区溢出是最可能的问题。

假设您使用gcc编译应用程序,请添加选项:

-fstack-protector-all

到您的编译和链接选项。这会在堆栈周围粘贴几个额外的标记位,当你的缓冲区溢出时,在gdb中你会看到一个更有用的“堆栈粉碎检测”消息,以及应用程序的堆栈跟踪,然后它实际上会破坏堆栈