出现的问题及其主要原因
问题
- 在使用horde执行引擎时,当执行在其他节点的程序出现问题时,不易调试;
原因
- 出现问题的进程是由其他进程创建的,并且运行到其他的节点上,虽然可以用调试器(gdb)远程attach到一个进程,仍然造成调试的困难;
- 出现问题的进程是和其他进程有各种交互(消息传递),要想调试,必须启动所有的其他进程;
- 线程的执行的不确定性和一些sys call的不确定性,导致重现问题比较复杂
目标
出现问题时,可以在本地方便的调试
方法
Record&Replay
- 记录此进程收到的消息,记录到日志文件"进程号_运行号_.debuggerlog"中
- 在调试时,
1. 修改配置文件中的监听地址,在本地监听
2. 在配置文件中,添加日志文件名
3. 启动gdb调试即可,所有的消息都是从日志文件中回放出来