1
linbiaye 2018-12-24 15:58:19 +08:00
那得看是你接手之前是不是容易 coredump
|
2
keysona 2018-12-24 16:02:59 +08:00
代码还原,看看初步怎样
|
3
keysona 2018-12-24 16:03:15 +08:00
初版
|
4
araraloren 2018-12-24 16:04:32 +08:00
是代码菜 还是 你菜。。。
|
5
chenqh 2018-12-24 16:09:18 +08:00
换 java,或者 golang,逃
|
7
fyooo OP @araraloren 毫无疑问是我菜...
|
8
katsusan 2018-12-24 16:23:53 +08:00
根据这个"也"字,意思是接手后解决的 bug 数和衍生的 bug 数持平吗,根据我数年的维护经验,lz 应该是掉进坑里了:doge:
|
9
truebaoge 2018-12-24 16:28:58 +08:00
gdb 调试一下
|
10
Earl 2018-12-24 16:53:26 +08:00
lz 接了一个坑盘
|
11
blless 2018-12-24 16:56:08 +08:00 via Android
小就重构,大的话…看钱多少
|
12
dapang1221 2018-12-24 16:58:24 +08:00
上 supervisor,自动重启,大家假装无事发生,还不是美滋滋
|
13
NoAnyLove 2018-12-24 18:17:23 +08:00
感觉上是没处理好多线程的同步 /临界区的问题,所以。。。。。。我觉得应该把菜加到标题里面
|
14
littlewing 2018-12-24 18:26:36 +08:00
C++表示这锅我不背
|
15
firebroo 2018-12-24 18:40:31 +08:00
写 c/c++我也经常 coredump。。。
|
16
chenqh 2018-12-24 18:41:52 +08:00
还是单线程好,逃
|
17
GeruzoniAnsasu 2018-12-24 22:37:54 +08:00 via Android 1
拒绝写
有全局对象的 不封装 channel 或者共享内存的 临界对象自己不带锁的 敢于在构造函数之外的大括号内只放 new/malloc 或者析构以外只放 delete/free 的 c++多线程程序 一般这种不定期 core 又可能与 race 相关,哎想想就头大 |
18
MeteorCat 2018-12-24 22:38:56 +08:00 via Android
我感觉楼主接盘侠了,恭喜恭喜
|
19
0987363 2018-12-24 22:50:36 +08:00 via Android
加 gdb 调呗,多半是临界区问题。。
|
20
sinxccc 2018-12-25 00:21:21 +08:00
容易复现的问题都不是问题…
仔细看代码和 core,给关键部分写单元测试,总能看出来是哪儿的问题的。 |
21
zts1993 2018-12-25 00:55:27 +08:00
C++ : 你们菜还赖我?
|
22
congeec 2018-12-25 01:12:08 +08:00
你菜或老项目写得烂或机器内存不够硬件背锅
C++:反正这锅我不背 |
23
sticnarf 2018-12-25 01:16:12 +08:00
因为我菜所以喜欢 Rust 啊……
|
24
aa514758835 2018-12-25 09:53:51 +08:00
c++线程同步很是麻烦啊,需要考虑很多,解决方案也不少,锁、消息队列、互斥量、信号量等等,你可以看看 core 文件,段错误段在哪里~
|
25
forcecharlie 2018-12-25 10:16:23 +08:00
注册 SIGTREM SIGSERV 然后在信号函数中使用 backtrace* 函数将堆栈展开输出到 bug 文件,然后使用 addr2line 去解析问题出在哪里,对于你的这种情况基本可以解决。
我们公司的 sshd 服务器就是 C++ 编写,然后使用了 backtrace 功能,前阵子更新了 libssh 经常出现 结束连接 SIGSERV, 后来找到了是 libssh 的一个 bug。 在信号回调函数中需要严格遵循异步信号安全的原则,不能有锁,否则会死锁,处理完后需要退出进程。(常见的动态内存申请需要加锁,因此不是异步信号安全的)。 |
26
HackerPainter 2018-12-25 10:36:21 +08:00
不 coredump 的那就不叫 c++
|
27
skadi 2018-12-25 14:43:51 +08:00
我改造了好多有问题的 c++历史代码...还好他们之前知道使用有锁队列.
|