![]() | Logo by Alessandro Bacchia (anonymous IP: 216.73.216.54,2443) | |||||||||||||
| ||||||||||||||
Audio (347) Datatype (51) Demo (204) Development (617) Document (24) Driver (98) Emulation (154) Game (1033) Graphics (513) Library (119) Network (237) Office (67) Utility (946) Video (73) Total files: 4483 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()
* LockLayerInfo()
* LockLayer()
* LockLayers()
* LockScreenList()
* LockPubScreenList()
* LockWindowList()
* LockGadgetList()
graphics.library
* LockLayerInfo()
* LockLayer()
* 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.
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 program’s author.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © 2004-2026 by Björn Hagström All Rights Reserved |