Question: Can I debug the kernel myself?
Answer: Sure, by all means! There is a special parameter on the command line to assist you with this. Use -b to invoke the debug mode of the parallel kernel (see next question). You will get a debugger for each task started by the kernel. I only used this in X-window so I can not help M$ or other users here. Note:
- That this will only work is the PVM_EXPORT environment variable is set! Put the necessary commands in the startup files of your favorite shell.
- Use only 1 machine when debugging, otherwise you may not get any debugging window at all.
- Look into the PVM manual for more information.
Question: What are the command line debugging options?
Answer: The -b option must be followed by the number of processes to debug. As special value here is '0' since this means that all the processes will get a debugging window for your greatest pleasure and mine...
Question: Is there a way of getting more debugging information from the kernel?
Answer: Yes, there are quite some defines that can be used to enable the display of more information as well as more run-time checks. These defines usually start with PDEBUG_ You can find them in the GNUmakefile in the kernel directory (they should be commented out).
Question: I compiled my program with the additional defines mentioned above but do not get more information from the slaves!
Answer: If you didn't use the -b option on the command line then all the information ends up in the log file of PVM. You usually (if not always) find this file in the /tmp directory on un*x machines. Check your PVM manual for other OSes.
Question: Why not put all the defines there in the first place anyway?
Answer: Some of them generate really a lot of information. If you plan to do long runs you will end up with a huge log file... Then one day you come crying about it because your 12 weeks worth of CPU time got lost because of a full harddisk!
Question: When I look in the pvml.xxxx file I see an long list of FATAL ERROR: FATAL ERROR: ... What happens?
Answer: There must be a bug in the function or datastructure I used to debug the memory usage. A memory use report should be created after a segmentation fault. But if there is a segementation fault inside one of the functions to that end we get a nice loop and that is what you see. I am working on that...