gdb can't find any source after compile through distcc

관용김 ooxxao at gmail.com
Mon May 30 04:06:10 UTC 2016


I'm using several FreeBSD machines, and all of them are in same version,
10.3-RELEASE i386.
And installed distcc  on every machine through ports,
/usr/ports/devel/distcc. The distcc version is distcc-3.1. Using ninja
build system with Clang 3.4.1 instead of GCC. Any compile was done very
successfully. But after, every time I try to make break point in gdb, it
cannot catch any source files of the project.
I think It may be the result of the temp files named distccd_xxxxxxxx.ii that
distcc/distccd give and receive between machines. It located at /tmp/ and
it is volatile. Because clang write path and file name like
/tmp/distccd_xxxxxxxx.ii
and distccd_xxxxxxxx.ii on object file, gdb only knows the 'distccd_XX.ii'
file is the real one.
I've tried 'directory' command in gdb, and it is not sufficient because my
file tree is so complicated and too big. And also, I need to recompile
project again when I changed the obj files. gdb is just fine when I
compiled locally without distcc. I can't use gcc right now (I can't modify
existing compile structure), and pump-mode isn't helpful either.

Is there any solutions for my situation?


More information about the freebsd-questions mailing list