|
From: Julian S. <js...@ac...> - 2008-03-10 12:14:07
|
> I've copied a small example here to explain further what I mean. From > the following report, it can be seen that lines 1823 and 1833 are indeed > conditionals, but line 1851 is actually a printf statement containing > only a string literal. However, the next line (1852) is a conditional. > > At first, I suspected a synchronization issue between the running code > and the sources, but I've now convinced myself that this is not the case. > > Can anyone explain this behaviour? Am I just doing something stupid? There can sometimes be a small degree of error in the line numbers. Reading it exactly accurately is not always easy and gcc has been known to emit bogus line number info, especially at high optimisation levels. Ideally, code you want to Memcheckify shouldn't be compiled at -O2 or -O3. Also you have no stack traces. Are you compiling with -fomit-frame-pointer? Anyway, the obvious conclusion from looking at these is that thread->timedwait.tv_sec contains an uninitialised value. You might want to figure out where that came from. Finally .. it is important to fix the first reported error first -- error cascades are well known. J |