最近项目中遇到进程core, 然后测试报了5次多了,每次去看core,都是问号。so search path, sysroot都配好了,依赖的库的symbol也都load成功了,但就都是问号。
和旁边开发对了一下。他的core都能看到,我的core都看不到。后面他意识到他的core都是在主线程中生成的。我的core有线程信息,是在子线程中生成的。
测试一下,发现,果然子线程中的core,无法捕获调用函数栈信息。
于是,发现目前系统中启动的dumper是加了 -t 参数的。虽然介绍 -t 是捕获出问题的线程。去掉测试一下,就可以抓到子线程的core了。理论上-t 不应该区分在哪个线程产生core而都应该捕获的。
目前看来应该是QNX dumper -t 是有bug的。