diff Tools/scripts/objgraph.py @ 1105:6f2a6efd019e legacy-trunk

Adapt to modern times...
author Guido van Rossum <guido@python.org>
date Thu, 10 Dec 1992 00:00:58 +0000
parents 683edb0c4463
children 73758db2f464
line wrap: on
line diff
--- a/Tools/scripts/objgraph.py	Wed Dec 09 23:14:40 1992 +0000
+++ b/Tools/scripts/objgraph.py	Thu Dec 10 00:00:58 1992 +0000
@@ -1,4 +1,4 @@
-#!/usr/local/python
+#!/usr/local/bin/python
 
 # objgraph
 #
@@ -21,9 +21,9 @@
 
 import sys
 import string
-import path
+import os
 import getopt
-import regexp
+import regex
 
 # Types of symbols.
 #
@@ -33,7 +33,7 @@
 
 # Regular expression to parse "nm -o" output.
 #
-matcher = regexp.compile('(.*):\t?........ (.) (.*)$')
+matcher = regex.compile('\(.*\):\t?........ \(.\) \(.*\)$')
 
 # Store "item" in "dict" under "key".
 # The dictionary maps keys to lists of items.
@@ -66,12 +66,13 @@
 #
 def readinput(file):
 	while 1:
-		s = file.readline(200) # Arbitrary, but reasonable limit
+		s = file.readline()
 		if not s:
 			break
-		# If you get an exception on this line,
+		# If you get any output from this line,
 		# it is probably caused by an unexpected input line:
-		(ra, rb), (r1a, r1b), (r2a, r2b), (r3a, r3b) = matcher.exec(s)
+		if matcher.search(s) < 0: s; continue # Shouldn't happen
+		(ra, rb), (r1a, r1b), (r2a, r2b), (r3a, r3b) = matcher.regs[:4]
 		fn, name, type = s[r1a:r1b], s[r3a:r3b], s[r2a:r2b]
 		if type in definitions:
 			store(def2file, name, fn)
@@ -160,7 +161,8 @@
 		optlist, args = getopt.getopt(sys.argv[1:], 'cdu')
 	except getopt.error:
 		sys.stdout = sys.stderr
-		print 'Usage:', path.basename(sys.argv[0]), '[-cdu] [file] ...'
+		print 'Usage:', os.path.basename(sys.argv[0]),
+		print           '[-cdu] [file] ...'
 		print '-c: print callers per objectfile'
 		print '-d: print callees per objectfile'
 		print '-u: print usage of undefined symbols'