|
 |
Le 21/06/2011 17:30, Jan-Philip Gehrcke nous fit lire :
> [Thread debugging using libthread_db enabled]
> [New Thread 0x2b98e31c7950 (LWP 4278)]
It can be interesting to look also at that thread too, as it might have
the mutex the main thread is expecting.
gdb command would be "info threads"
then "thread <number_of_the_thread_for_gdb>"
and "where" once there.
> 0x00002b98df0fb5fd in pthread_mutex_lock () from /lib64/libpthread.so.0
> (gdb) where
> #0 0x00002b98df0fb5fd in pthread_mutex_lock () from /lib64/libpthread.so.0
> #1 0x00002b98dec492a2 in ?? () from /lib64/ld-linux-x86-64.so.2
> #2 0x00002b98e151e552 in std::basic_istream<char, std::char_traits<char> >&
> std::getline<char, std::char_traits<char>, std::allocator<char>
>> >(std::basic_istream<char, std::char_traits<char> >&, std::basic_string<char,
> std::char_traits<char>, std::allocator<char> >&, char) () from
> /usr/lib64/libstdc++.so.6
> #3 0x0000000000430bd0 in vfePlatform::UnixOptionsProcessor::parse_conf_file (
> this=0x92f7b0, Stream=@0x7fffb8f87850, conf_name=@0x92f7d8, user_mode=true)
> at unix/unixoptions.cpp:817
> #4 0x0000000000431fe7 in vfePlatform::UnixOptionsProcessor::process_povray_conf
> (this=0x92f7b0) at unix/unixoptions.cpp:1052
> #5 0x0000000000432768 in UnixOptionsProcessor (this=0x92f7b0,
> session=<value optimized out>) at unix/unixoptions.cpp:195
> #6 0x000000000042b000 in vfeUnixSession (this=0x92f2a0,
> id=<value optimized out>) at unix/vfeplatform.cpp:133
> #7 0x000000000043e141 in main (argc=10, argv=0x7fffb8f881e8)
> at unix/unixconsole.cpp:452
> (gdb)
It could be interesting to up to #3 to get more information about Stream
(and line_number of unixoptions.cpp... parse_conf_file() )
For the time-being, it looks like a mutex-lock for that thread, done by
the system itself.
Are you somehow on a NFS mounted filesysem ? (like "your home is mounted
everywhere, whatever the system you log in" ?)
I'm used to --disable-io-restrictions for configure, you might give it a
try (at least for the experiment).
I wonder a bit about the construct
while ( !Stream.eof() )
{
// get and preprocess line
std::getline(Stream, line);
line = pre_process_conf_line(line);
++line_number;
// skip empty line
if(line.length() == 0)
continue;
If the last line is length 0, would the eof() be evaluated (again) ?
Post a reply to this message
|
 |