_dopr 是什么意思
我有一个在 dopr 崩溃的 gdb 崩溃转储
这是做什么的? 我没有定义这个函数,也没有在任何地方使用调用。是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 ?? ()
I have a gdb be crashed dump having crashed at dopr
What does this do ?
I have not defined this function and not using calling anywhere. Is is libc function ?
[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 ?? ()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如评论中提到的 _dopr 不是你的问题。您看到的是堆栈损坏,并且在注释中,缓冲区溢出是最有可能的问题。
假设您正在使用 gcc 编译应用程序,请将选项:添加
到编译和链接选项中。这会在堆栈周围添加一些额外的哨兵位,当发生缓冲区溢出时,在 gdb 中,您会看到一条更有用的“检测到堆栈粉碎”消息,以及应用程序实际销毁堆栈之前的堆栈跟踪。
As mentioned in the comments _dopr isn't your problem. What you are looking at is stack corruption, and again, in the comments, a buffer overflow is the most likely problem.
Assuming you are compiling your application with gcc, add the option:
to your compile and link options. This stick a couple of extra sentinel bits around the stack, and when your buffer overflow occurs, in gdb you'll see a much more useful 'stack smashing detected' message, along with the stack trace of your application before it actually destroys the stack.