![]() | Logo by DaveyD (anonymous IP: 10.9.111.101,0) | |||||||||||
| ||||||||||||
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  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()
* 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 (c) 2004-2026 by Björn Hagström All Rights Reserved Amiga OS and its logos are registered trademarks of Hyperion Entertainment |