![]() | Logo by DaveyD (anonymous IP: 10.9.106.192,0) | |||||||||||
| ||||||||||||
Audio (350) Datatype (51) Demo (206) Development (621) Document (24) Driver (102) Emulation (155) Game (1038) Graphics (514) Library (121) Network (241) Office (69) Utility (956) Video (74) Total files: 4522 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 |