Debugging interfaces not available – debugging is disabled..


I recently installed a new build of Softimage, and right from the start I was getting Debugging interfaces not available – debugging is disabled.. messages in the script history.

(Note that I use the Python installed with Softimage.)

I tracked the message down to the SetScriptSite function in
%XSI_HOME%\Application\python\Lib\site-packages\win32comext\axscript\client\framework.py

	#
	# IActiveScript
	def SetScriptSite(self, site):
		# We should still work with an existing site (or so MSXML believes 🙂
		self.scriptSite = site
		if self.debugManager is not None:
			self.debugManager.Close()
		import traceback
		try:
			import win32com.axdebug.axdebug # see if the core exists.
			import debug
			self.debugManager = debug.DebugManager(self)
		except pythoncom.com_error:
			# COM errors will occur if the debugger interface has never been
			# seen on the target system
			trace("Debugging interfaces not available - debugging is disabled..")
			self.debugManager = None
		except ImportError:
			#trace("Debugging extensions (axdebug) module does not exist - debugging is disabled..")
			self.debugManager = None
		except:
			traceback.print_exc()
			trace("*** Debugger Manager could not initialize - %s: %s" % (sys.exc_info()[0],sys.exc_info()[1]))
			self.debugManager = None

		try:
			self.lcid = site.GetLCID() 
		except pythoncom.com_error:
			self.lcid = win32api.GetUserDefaultLCID()
		self.Reset()

Normally (in all my other Softimage installs on this computer), line 10 fails and fires an ImportError. This is invisible because the trace() on line 19 is commented out. So basically, the Softimage install anticipates that win32com.axdebug.axdebug won’t be found.

However, if win32com.axdebug.axdebug is found, then SetScriptSite tries to import debug, and when that fails, you get that Debugging interfaces not available – debugging is disabled.. message. That’s what was happening on my machine.

As usual, my friend Process Monitor was helpful in figuring this out.

My workaround, for now, is to comment out that trace() call on line 16.