![]() | Logo by DaveyD (anonymous IP: 10.1.188.68,0) | |||||||||||
| ||||||||||||
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  OpenAmiga  Aminet  UtilityBase  IntuitionBase  AmigaBounty
Support the site
|
[Show comments] [Show snapshots] [Show videos] [Show content] [Show crashlogs] 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 (c) 2004-2026 by Björn Hagström All Rights Reserved Amiga OS and its logos are registered trademarks of Hyperion Entertainment |