1
znoodl 2015-11-13 17:37:20 +08:00 1
其实只要手动 ulimit -c 10240 就行了,然后运行程序
之后 gdb -c core.* program*调试 PS:为啥不是写程序的人调试? |
2
tesion99 2015-11-13 17:38:13 +08:00 1
编译的时候要加上相关的调试参数 -g,同时把编译的优化选项去掉,运行程序,根据产生的 core dump 文件,运行相关 gdb 命令,调试
ps:注意查看 core dump 文件的生成路径,一般为当前程序运行目录下 |
4
jimrok OP 貌似都是加了,调试版本的代码很大。
|
5
ryd994 2015-11-13 18:05:03 +08:00
上 valgrind 。另外这个难道不属于 bug 么?打回去返工
|
6
oott123 2015-11-13 18:20:37 +08:00
=_= 难道没人提醒楼主是 crash 不是 cash ……
|
8
zzhhgo 2015-11-13 19:19:48 +08:00 1
ulimit -c unlimited
这个为了让你当前环境可以用 echo "ulimit -c unlimited" >> ~/.bash_profile 这个让你在下次 ssh 连上可以用 ulimit -a 这个用来查看 查看当前 core size 是不是显示 unlimited ? |
9
jimrok OP @ryd994 压力测试和功能测试都出现不了。上了客户的网络就不定期的蹦溃,开发觉得只有 core dump 能知道问题了,代码看了几遍不知道在什么地方有问题。
|
10
julypanda 2015-11-13 19:48:39 +08:00 1
看见 cash 进来的
感觉被骗了 |
11
jimrok OP @zzhhgo 已经加了,但每次 crash 都看不到 core , 难道哪里配置错误了,程序应该是 monit 在崩溃后带起来的。
|
12
jimrok OP 感觉用 C 写代码技术不精就是受虐,开发,运维,老板,客户一起虐,可看着国外那么多 nginx , redis , memcached ,大把的 C 代码的产物。不知道是靠什么来保证品质的。
|
13
tinkerer 2015-11-13 21:32:21 +08:00 via iPhone 1
楼主用 cash 让我点击进来了…
|
14
freeznet 2015-11-13 21:51:45 +08:00 1
我如果遇到不 dump 的情况,就会选择直接用 tmux+gdb 执行程序,然后等待崩溃再切过去调试~。
其实我也经常遇到不 dump 的情况,一直没搞懂为毛会不 dump ,坐等大神解答。 |
15
frienmo 2015-11-13 21:56:07 +08:00 1
昨天中美两国程序员
今天上个新服务器就 cash |
16
stanhou 2015-11-13 22:16:00 +08:00 1
还以为 LZ 收 CASH 收到手抽筋呢
|
17
aliipay 2015-11-14 13:13:12 +08:00
要是不是 crash 而是自己 exit ,这就搞笑了
|
18
aliipay 2015-11-14 13:13:52 +08:00
如果不是 crash 而是自己 exit ,这就搞笑了
|
20
jimrok OP @zzhhgo 貌似 core 是能够通过 kill 产生,产生的位置符合 core_pattern 的设置,我还找了这篇文章: https://www.centos.org/forums/viewtopic.php?t=5962 ,不过好像然并卵。我有点开始怀疑某处代码自己退出了系统。
|