diff Lib/idlelib/Debugger.py @ 42999:dc0f0ffd4257

1. Debugger was failing to start due to DictProxy limitations. 2. Fix some debug prints in RemoteDebugger.py - use py3k syntax.
author Kurt B. Kaiser <kbk@shore.net>
date Wed, 29 Aug 2007 18:44:24 +0000
parents fa9a40ef0780
children 4f1a079df427
line wrap: on
line diff
--- a/Lib/idlelib/Debugger.py	Wed Aug 29 18:42:15 2007 +0000
+++ b/Lib/idlelib/Debugger.py	Wed Aug 29 18:44:24 2007 +0000
@@ -446,7 +446,20 @@
             l = Label(subframe, text="None")
             l.grid(row=0, column=0)
         else:
-            names = sorted(dict)
+            #names = sorted(dict)
+            ###
+            # Because of (temporary) limitations on the dict_keys type (not yet
+            # public or pickleable), have the subprocess to send a list of
+            # keys, not a dict_keys object.  sorted() will take a dict_keys
+            # (no subprocess) or a list.
+            #
+            # There is also an obscure bug in sorted(dict) where the
+            # interpreter gets into a loop requesting non-existing dict[0],
+            # dict[1], dict[2], etc from the RemoteDebugger.DictProxy.
+            ###
+            keys_list = dict.keys()
+            names = sorted(keys_list)
+            ###
             row = 0
             for name in names:
                 value = dict[name]