1 znoodl 2015-11-13 17:37:20 +08:00 ![]() 其实只要手动 ulimit -c 10240 就行了,然后运行程序 之后 gdb -c core.* program*调试 PS:为啥不是写程序的人调试? |
![]() | 2 tesion99 2015-11-13 17:38:13 +08:00 ![]() 编译的时候要加上相关的调试参数 -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 ![]() 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 ![]() 看见 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 ![]() 楼主用 cash 让我点击进来了… |
![]() | 14 freeznet 2015-11-13 21:51:45 +08:00 ![]() 我如果遇到不 dump 的情况,就会选择直接用 tmux+gdb 执行程序,然后等待崩溃再切过去调试~。 其实我也经常遇到不 dump 的情况,一直没搞懂为毛会不 dump ,坐等大神解答。 |
15 frienmo 2015-11-13 21:56:07 +08:00 ![]() 昨天中美两国程序员 今天上个新服务器就 cash |
![]() | 16 stanhou 2015-11-13 22:16:00 +08:00 ![]() 还以为 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 ,不过好像然并卵。我有点开始怀疑某处代码自己退出了系统。 |