1

Topic: Whether it is possible to find somehow automatically bugs in the multi-threaded code?

Often happens that bugs in the multi-threaded code are not shown on the test data. Whether there is any tool which could run the test and produce an error if the test relied on not guaranteed behavior, we tell so. I while can invent only - to launch this test for a heap of flows by the multiprocessor machine, to simulate as much as possible excited environment if it is possible so to express and wait while falls. But besides it guarantees nothing and moreover, a row of errors like rescheduling of instructions by the processor (when one flow sees changes not in that order in which they are done by other flow) as I understand, on x86 will not be shown at all since the architecture of the processor of it does not admit (but on any ARM already can it will be shown, only I for tests have to take it). In Java basically there is a rule happens-before and there can be someone made any toolkit which under debugging checks each instruction and detects, when this instruction can meet a polysemy? Or something similar.

2

Re: Whether it is possible to find somehow automatically bugs in the multi-threaded code?

Such tools meet, but are difficult in application. Here, for example, http://babelfish.arc.nasa.gov/trac/jpf/ can be used for the given purpose including.

3

Re: Whether it is possible to find somehow automatically bugs in the multi-threaded code?

Hello, vsb, you wrote: vsb> In Java basically there is a rule happens-before and there can be someone made any toolkit which under debugging checks each instruction and detects, when this instruction can meet a polysemy? Or something similar. If speech about Java partially Findbugs approaches. Something from most often meeting potential errors in the multi-threaded environment he sees. There there is a description of all errors which he can note, for example, An increment to a volatile field isn't atomic.