Runtime Manager¶
Open Dylan’s runtime manager is a set of components that underlie the development environment’s debugging functionality.
- The ACCESS-PATH library
- The ACCESS-PATH Module
- Creating and Attaching Access Paths
- Access Path Functions
access-path-abstract-handleaccess-path-abstract-handle-setteraccess-path-application-objectaccess-path-applicationaccess-path-argumentsaccess-path-processaccess-path-core-file$max-spy-function-argumentsspy-function-argument-remote-vectorspy-function-argument-remote-vector-setter$max-stepping-locationsstepping-locations-remote-vectorstepping-locations-remote-vector-setter$access-ok
- Modeling Remote Objects
- Debugger Connections
<debugger-connection>*open-debugger-connections*connection-hostnameconnection-hostname-setterconnection-open?connection-open?-setterconnection-passworddescribe-debugger-connectiondescribe-debugger-connection(<local-debugger-connection>)describe-debugger-connection(<remote-debugger-connection>)do-open-debugger-connections<access-connection>make-access-connectiondo-open-access-connectionsconnection-open-tethersconnection-processconnection-process-listconnection-process-list-setterconnection-process-setterconnection-network-addresshost-machine$local-hostnamedo-processesget-process-page-fault-count
- Remote Processes
- Remote Threads
<remote-thread>do-threadsregister-threadthread-namethread-access-pathget-thread-cpu-timeget-process-wall-clock-timenumber-of-active-threadsthread-statethread-prioritythread-suspended?thread-permanently-suspended?thread-permanently-suspended?-setterstack-sizestack-size-setterstack-size-valid?stack-size-valid?-setterstack-trace-valid?stack-trace-valid?-setterthread-stackthread-stack-setter
- Remote Libraries
- Remote Object Files
- Debugger Connections
- Reading and Writing Memory
<remote-value>=(<remote-value>, <remote-value>)as-integeras-integer(<remote-value>)as-integer(<descriptor-pointer>)as-integer-losing-precisionas-remote-valueas-remote-pointerindexed-remote-valuebyte-indexed-remote-valueremote-value-byte-sizetagged-remote-value-as-integertagged-remote-value-as-characterinteger-as-tagged-remote-valuecharacter-as-tagged-remote-valueremote-value-<remote-value-<=remote-value-=remote-value-as-stringstring-as-remote-valueremote-value-low-order-bits<remote-register><unassigned-remote-register><active-remote-register>register-namedo-registersfind-registeractive-register<remote-location><remote-type>- Functions for Querying Page Protection
- Functions for Reading and Writing
<remote-access-violation-error>read-valueread-value(<access-path>, <active-remote-register>)read-value(<access-path>, <remote-value>)write-valuewrite-value(<access-path>, <active-remote-register>, <remote-value>)write-value(<access-path>, <remote-value>, <remote-value>)read-8bwrite-8bread-16bwrite-16bread-32bwrite-32bread-64bwrite-64bread-single-floatread-single-float(<access-path>, <active-remote-register>)read-single-float(<access-path>, <remote-value>)write-single-floatwrite-single-float(<access-path>, <active-remote-register>, <single-float>)write-single-float(<access-path>, <remote-value>, <single-float>)read-double-floatread-double-float(<access-path>, <active-remote-register>)read-double-float(<access-path>, <remote-value>)write-double-floatwrite-double-float(<access-path>, <active-remote-register>, <double-float>)write-double-float(<access-path>, <remote-value>, <double-float>)read-byte-stringwrite-byte-string
- Controlling the Application
- Remote Function Calling
- Breakpoints and Watchpoints
- Stop Reasons
- Receiving and Processing Stop Reasons
- Stepping at Source Code Level
- The Class Hierarchy of Stop Reasons
<stop-reason><internal-stop-reason><basic-stop-reason><language-level-stop-reason><unhandled-stop-reason><external-stop-reason><profiler-stop-reason><profiler-unhandled-stop-reason><timeout-stop-reason>stop-reason-processstop-reason-thread<process-stop-reason><create-process-stop-reason>stop-reason-executable-component<exit-process-stop-reason>stop-reason-process-exit-code<thread-stop-reason><create-thread-stop-reason>create-thread-event-handlercreate-thread-event-handler(<access-path>)interactive-thread-break-event-handler(<access-path>)<exit-thread-stop-reason>interactive-thread-break-event-handlerstop-reason-thread-exit-code<library-stop-reason>stop-reason-library<load-library-stop-reason><unload-library-stop-reason><rip-stop-reason>stop-reason-exit-code<debug-point-stop-reason>stop-reason-debug-point-address<breakpoint-stop-reason><single-step-stop-reason><source-step-stop-reason><source-step-into-stop-reason><source-step-out-stop-reason><source-step-over-stop-reason><watchpoint-stop-reason><read-watchpoint-stop-reason><write-watchpoint-stop-reason><exception-stop-reason>stop-reason-exception-addressstop-reason-exception-first-chance?<invoke-debugger-stop-reason><system-initialized-stop-reason><system-invoke-debugger-stop-reason><memory-exception-stop-reason><access-violation-stop-reason>stop-reason-access-violation-addressstop-reason-access-violation-operation$access-violation-on-execute$access-violation-on-read$access-violation-on-write$access-violation-undecidable<array-bounds-exception-stop-reason><instruction-exception-stop-reason><illegal-instruction-exception-stop-reason><privileged-instruction-exception-stop-reason><arithmetic-exception-stop-reason><float-exception-stop-reason><denormal-exception-stop-reason><float-divide-by-zero-exception-stop-reason><inexact-result-exception-stop-reason><invalid-float-operation-exception-stop-reason><float-overflow-exception-stop-reason><float-underflow-exception-stop-reason><float-stack-check-exception-stop-reason><integer-exception-stop-reason><integer-divide-by-zero-exception-stop-reason><integer-overflow-exception-stop-reason><noncontinuable-exception-stop-reason><stack-overflow-exception-stop-reason><unclassified-exception-stop-reason><output-debug-string-stop-reason>stop-reason-debug-string
- First-Chance Exceptions
- Stack Backtraces
- Stack Frames
<stack-frame>link-nextlink-next-setterlink-previouslink-previous-setter<function-frame>initialize-stack-tracenumber-of-frames-on-stacknext-frameprevious-frameframe-pointerframe-return-addressframe-instruction-addressolder-stack-frame?register-interactive-code-segmentlexicalslexicals-setterstack-frame-pointerframe-threadfull-lexicals-read?full-lexicals-read?-setterpartial-lexicals-read?partial-lexicals-read?-setterlexicals-countlexicals-count-setterlexicals-nub-tablelexicals-nub-table-setternext-instruction
- Frame Arguments and Lexicals
- Continuing and Restarting Frames
- Stack Frames
- Symbol Lookup
<remote-symbol><remote-function>remote-function-debug-startremote-function-debug-endremote-function-endfirst-frame-breakable-addressfirst-frame-breakable-address(<remote-symbol>)first-frame-breakable-address(<remote-function>)last-frame-breakable-addresslast-frame-breakable-address(<remote-symbol>)last-frame-breakable-address(<remote-function>)remote-symbol-nameremote-symbol-addressremote-symbol-language$symbol-language-basic$symbol-language-c$symbol-language-c++$symbol-language-cobol$symbol-language-dylan$symbol-language-fortran$symbol-language-masm$symbol-language-pascalremote-symbol-libraryremote-symbol-object-fileremote-symbol-storage-statusremote-symbol-source-location-mapremote-symbol-source-location-map-setterdefinitely-no-source-locationsdefinitely-no-source-locations-setterdo-symbolsnearest-symbolsfind-symbolsymbol-relative-addressaddress-within-definition?address-within-definition?(<remote-symbol>, <remote-value>)address-within-definition?(<remote-function>, <remote-value>)function-bounding-addressesclassify-symbolic-name
- Disassembly
- Source Code
- Dylan-specific Extensions
- The ACCESS-PATH Module
- The DEBUGGER-MANAGER library
- Introduction
- Model of the Debugger Manager
- Debug Targets
<debug-target>debug-target-access-pathdebug-target-symbol-tabledebug-target-compilation-contextdebug-target-compilation-context-setterfind-library-calledobtain-component-nameobtain-component-name(<debug-target>, <string>)<interactor-return-breakpoint>interaction-request-application-stateinteraction-request-application-state(<interactor-return-breakpoint>)interaction-request-application-state-setterinteraction-request-application-state-setter(<object>, <interactor-return-breakpoint>)
- Debugger Transaction Caching Utilities
<page-relative-object-table><page-relative-object-table-entry>add-objectadd-object(<page-relative-object-table>, <remote-value>, <page-relative-object-table-entry>)enquire-objectenquire-object(<page-relative-object-table>, <remote-value>)remove-objectremove-object(<page-relative-object-table>, <remote-value>)invalidate-page-relative-object-tableinvalidate-page-relative-object-table(<page-relative-object-table>)
- Stop Reasons
stop-reason-debug-points<debugger-generated-stop-reason>stop-reason-client-data<debugger-stop-application-stop-reason><dylan-invoke-debugger-stop-reason>dylan-error-message-string<dylan-debug-message-stop-reason>dylan-debug-message-string<source-code-alignment-stop-reason><interactor-return-stop-reason><interactive-thread-initialized-stop-reason>interactive-thread-nameinteractor-transaction-idinteractor-return-valuessetup-interactorhandle-interactor-returnhandle-interactor-return(<debug-target>, <remote-thread>, <object>)<class-breakpoint-stop-reason>class-breakpoint-classclass-breakpoint-size
- Managing Application Control
- Registering Debug Points
<debug-point><breakpoint><watchpoint><tracepoint><entry-tracepoint><return-tracepoint>make-return-tracepointmake-return-tracepoint(<debug-target>, <entry-tracepoint>, <remote-thread>)make-return-tracepoint(<debug-target>, <starting-dynamic-initialization>, <remote-thread>)initialize-return-tracepointinitialize-return-tracepoint(<debug-target>, <return-tracepoint>, <remote-thread>)corresponding-entry-tracepointdylan-trace-entry-argumentsdylan-trace-return-valueshandle-debug-point-eventregister-debug-pointderegister-debug-point<debug-point-error>application-running-on-code-entry?application-running-on-code-entry?-setterapplication-just-interacted?application-just-interacted?-setterinteractor-deferred-id-table- Example - simple function tracing
- Dylan Name Context
- Transactions on dylan values
- Printing and Inspecting Dylan Objects
- Mapping Between Symbolic Names and Objects
- Convenience Interfaces for Dylan Objects
- Debugger Transactions and Remote Object Registration
- Stack Backtracing
<application-stack-frame>first-stack-framenext-stack-frameprevious-stack-frame<dylan-stack-frame-mixin><call-frame>call-frame-descriptioncall-frame-return-addresscall-frame-frame-pointercall-frame-nearest-source-locatorcall-frame-aligned-at-source-locator?call-frame-functionnumber-of-lexical-variablesactive-dylan-lexical-variableslive-frame-lexical-variables<dylan-call-frame>dylan-call-frame?<implementation-stack-frame><bind-exit-frame><unwind-protect-frame>
- Restarts
- Source-Level Stepping
- Mappings Between Addresses and Source Locators
- Foreign Code Debugging
- Runtime Context
- Profiling
- Controlling the Profiler Manager
- Extracting the data
<application-profile>application-snapshot-skipapplication-snapshotsapplication-profile-threads<application-snapshot>application-thread-snapshotwall-time-incrementpage-faults-incrementthread-snapshots<thread-snapshot><instruction-pointers>profile-threadcpu-time-incrementallocation-incrementallocated-classinstruction-pointersset-application-class-breakpointclear-application-class-breakpointclear-application-class-breakpoints
- Extension Interfaces
load-runtime-componentspy-function-definer<c-spy-function-descriptor>spy-function-runtime-namespy-function-runtime-componentcall-spycall-spy-on-thread<spy-call-error>spy-call-function-descriptorspy-call-debug-targetspy-call-arguments<spy-function-not-located><spy-call-aborted><spy-call-no-available-thread><spy-call-cannot-use-thread>spy-call-selected-thread