/** * called at run-time after the script has been included */ public function endInclude() { if (PDB_DEBUG) { pdb_Logger::debug("endInclude:::" . $this->session->currentTopLevelFrame . "parent: " . $this->session->currentTopLevelFrame->parent); } $this->session->currentFrame = $this->session->currentTopLevelFrame = $this->session->currentTopLevelFrame->parent; }
/** * called at run-time for each included file * @param string the script name * @return string the code */ public function startInclude($scriptName) { $isDebugger = basename($scriptName) == "PHPDebugger.php"; if (!$isDebugger) { $scriptName = $this->resolveIncludePath($scriptName); } pdb_Logger::debug("scriptName::{$scriptName}, {$isDebugger}"); $stepNext = $this->session->currentFrame->stepNext == pdb_JSDebugger::STEP_INTO ? pdb_JSDebugger::STEP_INTO : false; $this->session->currentFrame = new pdb_Environment($this->session->currentFrame, $scriptName, $stepNext); $this->session->allFrames[] = $this->session->currentFrame; if ($isDebugger) { // do not debug self $code = "<?php ?>"; } else { $code = $this->session->parseCode(realpath($scriptName), file_get_contents($scriptName)); } $this->session->currentTopLevelFrame = $this->session->currentFrame; pdb_Logger::debug("include:::" . $code); return $code; // eval -> pdb_step/MSG_READY or pdb_endInclude/MSG_READY OR FINISH }