gdb调试段错误具体方法

GCC-linux 2013-10-09 11:51:41
最让人头痛的是调试的时候出现段错误,要怎样才能找出来?求大神解答!
...全文
632 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
nadleeh 2013-11-11
  • 打赏
  • 举报
回复
引用 楼主 u012378280 的回复:
最让人头痛的是调试的时候出现段错误,要怎样才能找出来?求大神解答!
段错误,你高清段错误的实质就知道怎么调了。 我用看都能看出来一般,看不出来用消息打印
greex 2013-11-09
  • 打赏
  • 举报
回复
使用帮助man,有样例,看下各命令
GCC-linux 2013-11-09
  • 打赏
  • 举报
回复
引用 21 楼 zhao4zhong1 的回复:
[quote=引用 19 楼 u012378280 的回复:] [quote=引用 16 楼 zhao4zhong1 的回复:] 使用共享内存,编程实现一个进程往共享内存中写数据,另一个进程从共享内存中读取数据这要怎么写?
Linux下不知道。 Windows下参考Microsoft SDK\samples\winbase\SharedMem [/quote] windows底下怎么操作?
GCC-linux 2013-11-08
  • 打赏
  • 举报
回复
[quote=引用 16 楼 zhao4zhong1 的回复:] 使用共享内存,编程实现一个进程往共享内存中写数据,另一个进程从共享内存中读取数据这要怎么写?
GCC-linux 2013-11-08
  • 打赏
  • 举报
回复
引用 16 楼 zhao4zhong1 的回复:
前提是你的源代码名字是string.cpp或string.c g++或gcc生成的可执行文件名是string
我知道了。。。。原来是gcc -o string string.c才行
帅得不敢出门 2013-11-08
  • 打赏
  • 举报
回复
core有时候不大好用,如果走到了某个无调试信息的lib中而导致了segmentfault 而这个调用层次软多时,会显示不出来在哪出问题。
赵4老师 2013-11-08
  • 打赏
  • 举报
回复
引用 19 楼 u012378280 的回复:
[quote=引用 16 楼 zhao4zhong1 的回复:] 使用共享内存,编程实现一个进程往共享内存中写数据,另一个进程从共享内存中读取数据这要怎么写?
Linux下不知道。 Windows下参考Microsoft SDK\samples\winbase\SharedMem
Adol1111 2013-11-08
  • 打赏
  • 举报
回复
如果不指定名称的话,生成的就是那个a.out
nice_cxf 2013-11-04
  • 打赏
  • 举报
回复
这东西网上一搜大把。。。
赵4老师 2013-11-04
  • 打赏
  • 举报
回复
前提是你的源代码名字是string.cpp或string.c g++或gcc生成的可执行文件名是string
hgjyts65fg 2013-11-04
  • 打赏
  • 举报
回复
楼上的这个提示不是很明显吗? ./string都没有生成
GCC-linux 2013-11-03
  • 打赏
  • 举报
回复
引用 13 楼 zhao4zhong1 的回复:
1. ulimit -c 100
2. ./string
这步会生成core文件
3. gdb string core
4. bt



这是怎么回事?
赵4老师 2013-10-31
  • 打赏
  • 举报
回复
1. ulimit -c 100 2. ./string 这步会生成core文件 3. gdb string core 4. bt
hgjyts65fg 2013-10-31
  • 打赏
  • 举报
回复
// 在当前目录生成core文件 echo "./core_$(date +%Y-%m-%d_%H-%M-%S)_%p.core" > /proc/sys/kernel/core_pattern // core文件大小不限制 ulimit -c unlimited gdb 可执行文件名 core文件名 // 进入gdb后使用 bt bt full
nadleeh 2013-10-31
  • 打赏
  • 举报
回复
引用 楼主 u012378280 的回复:
最让人头痛的是调试的时候出现段错误,要怎样才能找出来?求大神解答!
我想说的是,段错误最好找了,用眼睛看都行,代码多了用printf或者printk
赵4老师 2013-10-30
  • 打赏
  • 举报
回复
ulimit 功能说明:控制shell程序的资源。 语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>] 补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。 参  数: -a  显示目前资源限制的设定。 -c <core文件上限>  设定core文件的最大值,单位为区块。 -d <数据节区大小>  程序数据节区的最大值,单位为KB。 -f <文件大小>  shell所能建立的最大文件,单位为区块。 -H  设定资源的硬性限制,也就是管理员所设下的限制。 -m <内存大小>  指定可使用内存的上限,单位为KB。 -n <文件数目>  指定同一时间最多可开启的文件数。 -p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。 -s <堆叠大小>  指定堆叠的上限,单位为KB。 -S  设定资源的弹性限制。 -t <CPU时间>  指定CPU使用时间的上限,单位为秒。 -u <程序数目>  用户最多可开启的程序数目。 -v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。
mujiok2003 2013-10-30
  • 打赏
  • 举报
回复
引用 7 楼 u012378280 的回复:
1. ulimit -c unlimited your_app_name 2. your_app_name and_its_parameters 这步会生成core文件 3. gdb core_file_name 这一般比较单步高试要快,尤其是对代码不是很熟的时候。 怎么调试的可以截图过来看下
your_app_name说的程序,不是源码。
GCC-linux 2013-10-30
  • 打赏
  • 举报
回复
引用 6 楼 mujiok2003 的回复:
[quote=引用 5 楼 u012378280 的回复:] ulimit -c core?????
1. ulimit -c unlimited your_app_name 2. your_app_name and_its_parameters 这步会生成core文件 3. gdb core_file_name 这一般比较单步高试要快,尤其是对代码不是很熟的时候。 [/quote] 麻烦调试界面截图过来看下好吗
GCC-linux 2013-10-30
  • 打赏
  • 举报
回复

1. ulimit -c unlimited your_app_name
2. your_app_name and_its_parameters
这步会生成core文件
3. gdb core_file_name

这一般比较单步高试要快,尤其是对代码不是很熟的时候。 怎么调试的可以截图过来看下
mujiok2003 2013-10-30
  • 打赏
  • 举报
回复
引用 5 楼 u012378280 的回复:
ulimit -c core?????
1. ulimit -c unlimited your_app_name 2. your_app_name and_its_parameters 这步会生成core文件 3. gdb core_file_name 这一般比较单步高试要快,尤其是对代码不是很熟的时候。
加载更多回复(5)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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