Skip to content

Trepan-Debuggers/kshdb

Repository files navigation

Packaging status

Introduction

This is a port and my bash debugger, bashdb, and zsh debugger, zshdb.

The command syntax generally follows that of the GNU debugger gdb.

However this debugger depends on a number of bug fixes and of debugging support features that are neither part of the POSIX 1003.1 standard and only in later ksh93v- releases. In particular, there are fixes to a number of the .sh variables like .sh.level and .sh.file, and fixes to for handling IO redirection.

To see if there is recent-enough version for your favorite distirbution, see the repology.org list.

Source code to later ksh releases can be found in the github att/ast repository.

Installation

See the wiki for how to install this code.

Debugger documentation

There is extensive command documentation inside the debugger itself.

However see the wiki and documentation for more information on this debugger.

What's here, what's not and why not

What's missing falls into two categories:

  • Stuff that might be ported in a straightforward way from bashdb or zshdb
  • Stuff that needs additional ksh support

What's not here yet in detail

This can be done with or without support from ksh, albeit faster with help from ksh.

  • Setting $0
  • lots of other stuff including...
    • display expressions, signal handling,
    • command completion
    • debugger commands:
      • file - sets file name for the current source
      • handle - specify debugger signal handling
      • history - rerun a debugger command from its history
      • signal - send a signal to the process
      • tty - set output device for debugger output
      • watch - Set or clear a watch expression.

None of this is rocket science; most of it should be pretty straight-forward to add.

I use a project's ratings to help be determine the priority I should give to it. You'll see that this project's rating is far behind zshdb's

What may need more work and support from ksh

  • command completion
  • stopping points that are valid for a breakpoint command