加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c gdb断点未命中

发布时间:2020-12-16 06:50:54 所属栏目:百科 来源:网络整理
导读:我完全改变了帖子. 因为我在韩国军队工作. 但韩国军队互联网计算机禁止上传文件. 所以我真的上传了我的源代码.但我不能. 所以我尝试使用gdb调试非常简单的程序. 但它仍然无法正常工作. 我的系统是 Distributor ID: UbuntuDescription: Ubuntu 14.04.3 LTSRel
我完全改变了帖子.
因为我在韩国军队工作.
但韩国军队互联网计算机禁止上传文件.
所以我真的上传了我的源代码.但我不能.
所以我尝试使用gdb调试非常简单的程序.
但它仍然无法正常工作.

我的系统是

Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty

在云IDE中称为“亚硝酸”

和g,gdb版本是

g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
GNU gdb (GDB) 7.8

我编写非常简单的代码:simple.cpp

#include <iostream>

int main(){
   std::cout << "Hello World!" << std::endl;
   return 0;
}

用“-g”和gdb执行编译

nitrous@ubuntu-108903:~/code$g++ -g simple.cpp -o simple
nitrous@ubuntu-108903:~/code$gdb simple

并设置break main并运行

Reading symbols from simple...done.
(gdb) break main
Breakpoint 1 at 0x400861: file simple.cpp,line 4.
(gdb) run
Starting program: /home/nitrous/code/simple
Hello World!
During startup program exited normally.

即使是非常简单的helloworld程序也不是断点.
只是打印出来在启动程序期间退出.

解决方法

I set a break point,but it’s not hit. What is problem?

最可能的问题是您的程序在到达main之前终止. (典型的动态链接程序在到达main之前将执行数百个指令.)

在GDB下运行程序,直到GDB停止使用SIGSEGV.执行GDB where命令.观察主要不在堆栈上.

一旦确认main不在堆栈中,请提出另一个问题(假设您仍然不理解崩溃的原因).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读