[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Execution replay for Qt/KDE applications
From:       "Oliver Oppitz" <o.oppitz () web ! de>
Date:       2004-10-17 15:10:50
Message-ID: opsf0sgccxli378s () smtp ! web ! de
[Download RAW message or body]


>> cool. I really interested in this kind of possibility. Maybe this can
>> be merged into Qt in the future?
Most of the project does not need modifications to Qt itself, its just  
additional classes. However, to get a _guaranteed_ correct replay, minimal  
changes to the Qt eventLoop are necessary. This is to synchronize the  
QEvents I post during the replay with the call graph like it was during  
the execution: e.g. the events handled in the say 42nd invocation of the  
Qt eventLoop during the execution phase, need to be handled in the 42nd  
invocation in the replay phase. For most applications this does not  
matter: it is irrelevant how fast you type, so we replay events with  
roughly the same timing. Indeed this synchronisation _should_ never  
matter, otherwise you have a bad design if your application depends on it.

However, for debugging we want to have _identical_ behaviour as in the  
original run. I have an editor that works nicely, but once I open some 25  
(!) windows (showing the same buffer) and insert characters via keyrepeat  
("fast") the cursor misses to advance its position now and then. This is  
clearly some timing/reentrancy problem due to the massive slow down of the  
25 windows (my X-server is a lightning-fast 600 Mhz Via C3 machine: slow  
machines do have advantages ;-). For debugging this a recording/replay  
tool would be _really_ handy: the events are recorded in _real time_ but  
they can be replayed in _non real time_ (assuming the little fix to the Qt  
event loop). You can then even set break points during the replay. Is that  
neat or what? ;-)

>> What about setting up a project in the SF?
I will make it public within the week, though it is really early.  
Currently it only captures keystrokes.

> Or just putting it in kdenonbeta
I do not know about kdennonbeta yet. I need to check this out.

Cheers for now,
   Oliver
-- 

----------------------------------------------------------------------------
"To dare is to lose foothold a moment
  not to dare os to lose one self" by S.Kierkegaard

 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic