![]() | Logo by Nickman (anonymous IP: 216.73.216.191,2468) | |||||||||||||
| ||||||||||||||
Audio (348) Datatype (51) Demo (205) Development (618) Document (24) Driver (101) Emulation (154) Game (1033) Graphics (514) Library (120) Network (238) Office (67) Utility (948) Video (73) Total files: 4494 Full index file Recent index file
Amigans.net Aminet IntuitionBase Hyperion Entertainment A-Eon Amiga Future
Support the site
|
Deadlock
Deadlock is a debugging tool that monitors the Intuition and Graphics locking
system to detect which process caused a GUI deadlock.
It patches follwoing functions in:
intuition.library
* LockIBase()
* LockGadgetList()
* LockScreenList()
* LockPubScreenList()
graphics.library
* LockBitMapTagList()
* LockBitMapToBoardTagList()
layer.library
* LockLayer()
* LockLayerInfo() (this one might not work correct, wrong info)
* LockLayers()
Lock activity is tracked per PID.
If the system freezes without a Guru (no input, no redraw, no window
movement), Deadlock can identify the task still holding a lock.
Installation
Deadlock must be started before Workbench is loaded.
Place it just before LoadWB in S:Startup-Sequence.
run deadlock >AUX:
To allow debugging after a freeze, add this to S:User-Startup:
NewShell AUX:
This creates a serial console so you can connect after the machine locks up.
Usage
Use DeadLockCtrl to control the monitor:
DeadLockCtrl LIST ; list current locks per PID
DeadLockCtrl QUIT ; disable Deadlock
If a deadlock occurs:
Connect via the serial console.
Run "DeadLockCtrl LIST" from putty/windows or picocom/linux
Identify the PID still holding a lock.
Run:
FrozenAt PID=???
If the binary is not stripped, the stack trace will usually reveal the
offending function.
Send the stack trace to the programs author.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © 2004-2026 by Björn Hagström All Rights Reserved |