[CMake] ctest timeout: getting backtraces

Leif Walsh leif.walsh at gmail.com
Wed Jun 27 15:02:07 EDT 2012


Never mind, I found it. SIGKILL is used. Oh well. 

Sent from my iPhone

On Jun 27, 2012, at 14:54, Leif Walsh <leif.walsh at gmail.com> wrote:

> Thanks.
> 
> Who knows about kwsys? I only need this on a couple of platforms and don't mind doing it once for each. 
> 
> Sent from my iPhone
> 
> On Jun 27, 2012, at 14:09, David Cole <david.cole at kitware.com> wrote:
> 
>> ctest uses the kwsys utilities to launch and monitor sub-processes.
>> 
>> Theoretically, it goes like this, with variations in implementation
>> from platform to platform:
>> 
>> After a call to a kwsysProcessCreate function (which spawns a process
>> asynchronously and returns control to ctest), we loop while calling
>> either a WaitForData or WaitForExit function, collecting stdout and
>> std err from the sub-process. Those wait functions may simply return a
>> value to us that says "hey, the timeout has expired" and ctest does
>> not even have to kill anything at that point.
>> 
>> We hand the timeout value to the ProcessCreate function, so the system
>> can kill it for us if it knows how to do that.
>> 
>> If not, we also have a kwsysProcessKill function that we can call if necessary.
>> 
>> So ... you can't use a sig trap reliably unless you know the
>> implementation details of the whole system under the hood and you know
>> for a fact that it's going to work on a given system.
>> 
>> 
>> HTH,
>> David
>> 
>> 
>> On Tue, Jun 26, 2012 at 11:25 PM, Leif Walsh <leif.walsh at gmail.com> wrote:
>>> I'd like to be able to get a backtrace when a test times out with ctest, so I can analyze where the test was stuck, if at all.
>>> 
>>> I tried writing a fake test to tell me what signal ctest was using to kill a timing out test, but it couldn't.  I imagine this is because it uses SIGKILL and I can't trap that.
>>> 
>>> Is this the case?  Is there a way to change what ctest uses (perhaps SIGALRM, SIGPROF, or SIGUSR1/SIGUSR2) so I can have my tests trap that, dump a backtrace, and then abort?  If not, could I request this feature?
>>> 
>>> --
>>> Cheers,
>>> Leif
>>> 
>>> --
>>> 
>>> Powered by www.kitware.com
>>> 
>>> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>>> 
>>> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>>> 
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.cmake.org/mailman/listinfo/cmake


More information about the CMake mailing list