module: access-path-implementation synopsis: Implementation of debugger connections author: Paul Howard Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND define class () end class; ///// Debugger connection // An instance of can be seen as an object that has the // capability of creating debugger nubs. define abstract class () slot server :: , init-keyword: server:; end class; define class () end class; define class () end class; define method make (class == , #rest keys) apply (make, , keys); end method; define constant *default-local-debugger-connection* = make (, server: 0); ///// Access connection // Instances of relate directly to instances of a debugger // nub. They contain the information that is necessary to communicate with a // specific debugger nub from the access path. An access connection can be // local or remote, and (orthogonally) 32-bit or 64-bit. define abstract class () slot machine :: , init-keyword: machine:; // slot access-lock :: , // init-function: method () make () end; end class; define abstract class () slot socket :: , init-keyword: socket:; end class; define abstract class () slot process, init-keyword: process:; end class; define class () end class; define class () end class; define class () end class; define class () end class; define method make (class == , #rest keys, #key, #all-keys) apply (make, , keys); end method; ///// start-application-on-connection // This function is called to initialize an instance of // and calls the server function to create the running process. If the // access connection is local, then the server returns a packaged // process descriptor (a ) which is saved in the access connection. define method start-application-on-connection (conn :: , command :: , arguments :: ) => () conn.process := make(); conn.process.debug-info := generate-runtime-vector(); link-simulation(conn.process); reset-runtime(conn.process); end method; define method start-application-on-connection (conn :: , command :: , arguments :: ) => () end method;