OS4 DepotLogo by DaveyD 
(anonymous IP: 10.9.111.101,0) 
 HomeRecentStatsSearchMirrorsContactInfoDisclaimerConfigAdmin
 Menu

 Features
   Crashlogs
   Bug tracker
   Locale browser
 

 Categories

   o Audio (348)
   o Datatype (51)
   o Demo (205)
   o Development (618)
   o Document (24)
   o Driver (101)
   o Emulation (154)
   o Game (1033)
   o Graphics (514)
   o Library (120)
   o Network (238)
   o Office (67)
   o Utility (948)
   o Video (73)

Total files: 4494

Full index file
Recent index file

 Links

  Amigans.net
  OpenAmiga
  Aminet
  UtilityBase
  IntuitionBase
  AmigaBounty


Support the site


 Readme for:  Development » Debug » deadlock.lha

deadlock

Description: Deadlock is a debugging tool that monitors locks
Download: deadlock.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 12kb
Version: 1.2
Date: 21 Feb 26
Author: Kjetil Hvalstrand
Submitter: Kjetil Hvalstrand
Email: kjetil hvalstrand/gmail com
Category: development/debug
Replaces: development/debug/deadlock.lha
License: Other
Distribute: yes
Min OS Version: 4.1
FileID: 13706
 
Comments: 0
Snapshots: 0
Videos: 0
Downloads:  (Current version)
 (Accumulated)

[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