This changes SIGUSR2 to start a debugger that you can telnet to on port 8080. At the moment you need to do "C-] mode char\n" in your telnet client to get it into character mode instead of line mode. --- anaconda | 22 ++++++++++------------ scripts/upd-instroot | 6 ++++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/anaconda b/anaconda index 2f0ca53..3046d43 100755 --- a/anaconda +++ b/anaconda @@ -443,6 +443,10 @@ def startSsh(): os.execv("/sbin/sshd", args) sys.exit(1) +def startDebugger(signum, frame): + import epdb + epdb.serve(skip=1) + class Anaconda: def __init__(self): self.intf = None @@ -468,15 +472,6 @@ class Anaconda: # *sigh* we still need to be able to write this out self.xdriver = None - def dumpState(self): - from exception import AnacondaExceptionDump - from inspect import stack as _stack - # Skip the frames for dumpState and the signal handler. - stack = _stack()[2:] - stack.reverse() - exn = AnacondaExceptionDump(None, None, stack) - exn.write(anaconda) - def writeXdriver(self, instPath="/"): # this should go away at some point, but until it does, we # need to keep it around. it could go into instdata but this @@ -626,11 +621,14 @@ if __name__ == "__main__": signal.signal(signal.SIGINT, signal.SIG_DFL) signal.signal(signal.SIGSEGV, isys.handleSegv) - # add our own additional signal handlers - signal.signal(signal.SIGUSR2, lambda signum, frame: anaconda.dumpState()) - setupEnvironment() + pidfile = open("/var/run/anaconda.pid", "w") + pidfile.write("%s\n" % (os.getpid(),)) + del pidfile + # add our own additional signal handlers + signal.signal(signal.SIGUSR2, startDebugger) + # we need to do this really early so we make sure its done before rpm # is imported iutil.writeRpmPlatform() diff --git a/scripts/upd-instroot b/scripts/upd-instroot index c112787..a479f5a 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -185,12 +185,12 @@ PACKAGES="GConf2 NetworkManager ORBit2 acl anaconda openldap openssh openssh-server pam pango parted pciutils pcre psmisc pygtk2-libglade pykickstart pyparted python python-bugzilla python-decorator - python-libs python-nss python-pyblock python-sqlite + python-libs python-nss python-pyblock python-sqlite python-epdb python-urlgrabber python-volume_key pyxf86config readline redhat-artwork reiserfs-utils rpm rpm-libs rpm-python sed selinux-policy-targeted setup slang smc-meera-fonts specspo sqlite synaptics system-config-date system-config-keyboard ${brandpkgname}-logos ${brandpkgname}-release taipeifonts tcp_wrappers - sysvinit-tools + sysvinit-tools telnet tzdata udev un-core-dotum-fonts urw-fonts util-linux-ng tigervnc-server tigervnc-server-module vlgothic-fonts vim-minimal wget wpa_supplicant xkeyboard-config xfsprogs xorg-x11-xauth @@ -530,6 +530,7 @@ usr/bin/syslinux usr/bin/tac usr/bin/tail usr/bin/tee +usr/bin/telnet usr/bin/tilo usr/bin/top usr/bin/wc @@ -552,6 +553,7 @@ usr/lib/anaconda/storage/formats usr/lib/kernel-wrapper usr/lib/locale usr/lib/python?.? +usr/lib/python?.?/site-packages/epdb/*.py usr/lib/rpm/macros usr/lib/rpm/rpmpopt usr/lib/rpm/rpmrc -- 1.6.5.rc2 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list