module: access-path-implementation synopsis: FFI declarations to allow access-path to call the debugger nub on demand 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 // C type aliases to make our FFI declarations look more like the // prototypes in the nub header. define C-struct end C-struct; define C-pointer-type => ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define constant = ; define class () constant slot thread-was-suspended-by-debugger? :: , required-init-keyword: suspended?:; constant slot nub-descriptor :: , required-init-keyword: nub-descriptor:; end class; define C-pointer-type => ; define C-pointer-type => ; define C-pointer-type => ; define C-pointer-type => ; define C-pointer-type => ; define C-pointer-type => ; // PRIMITIVES TO DO TAG STRIPPING/ADDING define C-function nub-primitive-tagged-value-as-integer parameter x :: ; result i :: ; c-name: "nub_primitive_tagged_value_as_integer"; end C-function; define C-function nub-primitive-tagged-value-as-character parameter x :: ; result c :: ; c-name: "nub_primitive_tagged_value_as_character"; end C-function; define C-function nub-primitive-integer-as-tagged-value parameter i :: ; result x :: ; c-name: "nub_primitive_integer_as_tagged_value"; end C-function; define C-function nub-primitive-character-as-tagged-value parameter c :: ; result x :: ; c-name: "nub_primitive_character_as_tagged_value"; end C-function; define C-function nub-primitive-indexed-remote-value parameter x :: ; parameter i :: ; result r :: ; c-name: "nub_primitive_indexed_remote_value"; end C-function; define C-function nub-primitive-byte-indexed-remote-value parameter x :: ; parameter i :: ; result r :: ; c-name: "nub_primitive_byte_indexed_remote_value"; end C-function; define C-function nub-primitive-remote-value-as-integer-losing-precision parameter x :: ; result i :: ; c-name: "nub_primitive_remote_value_as_integer_losing_precision"; end C-function; define C-function nub-primitive-integer-as-remote-value-losing-precision parameter i :: ; result x :: ; c-name: "nub_primitive_integer_as_remote_value_losing_precision"; end C-function; define C-function nub-primitive-select-low-order-bits parameter x :: ; parameter n :: ; result k :: ; c-name: "nub_primitive_select_low_order_bits"; end C-function; define C-function open-local-tether parameter command :: ; parameter arguments :: ; parameter path-count :: ; parameter paths :: ; parameter libsearch-count :: ; parameter libsearch :: ; parameter workingdir :: ; parameter own-shell :: ; output parameter success :: ; result tether :: ; c-name: "open_local_tether"; end C-function; define C-function attach-local-tether parameter process :: ; parameter path-count :: ; parameter paths :: ; parameter system-JIT-info :: ; output parameter success :: ; result tether :: ; c-name: "attach_local_tether"; end C-function; define C-function update-local-process-list result count :: ; c-name: "update_local_process_list"; end C-function; define C-function local-process-nub-descriptor parameter index :: ; result length :: ; c-name: "local_process_nub_descriptor"; end C-function; define C-function local-process-name-length parameter index :: ; result length :: ; c-name: "local_process_name_length"; end C-function; define C-function local-process-name parameter index :: ; parameter length :: ; parameter buf :: ; c-name: "local_process_name"; end C-function; define C-function local-process-system-identifier-length parameter index :: ; result length :: ; c-name: "local_process_system_identifier_length"; end C-function; define C-function local-process-system-identifier parameter index :: ; parameter length :: ; parameter buf :: ; c-name: "local_process_system_identifier"; end C-function; define C-function get-local-hostname-length result sz :: ; c-name: "get_local_hostname_length"; end C-function; define C-function get-local-hostname parameter buf-size :: ; parameter buffer :: ; c-name: "get_local_hostname"; end C-function; /* define C-function enumerate-local-processes end C-function; define C-function local-process-description end C-function; */ // DEBUGGER-NUB FUNCTION DESCRIPTIONS define debugger-nub-interface nub-remote-value-byte-size parameter nub :: ; result byte-size :: ; c-name: "nub_remote_value_byte_size"; end debugger-nub-interface; define debugger-nub-interface nub-get-process-page-fault-count parameter nub :: ; result count :: ; c-name: "nub_get_process_page_fault_count"; end debugger-nub-interface; define debugger-nub-interface nub-thread-os-priority parameter nub :: ; parameter thread :: ; result prio :: ; c-name: "nub_thread_os_priority"; end debugger-nub-interface; define debugger-nub-interface nub-get-thread-cpu-time parameter nub :: ; parameter thread :: ; result time-ms :: ; c-name: "nub_get_thread_cpu_time"; end debugger-nub-interface; define debugger-nub-interface nub-get-process-wall-clock-time parameter nub :: ; result time-millisecs :: ; c-name: "nub_get_process_wall_clock_time"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-base-address parameter nub :: ; parameter library :: ; result base-addr :: ; c-name: "nub_get_library_base_address"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-version parameter nub :: ; parameter library :: ; output parameter maj :: ; output parameter min :: ; c-name: "nub_get_library_version"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-filename-length parameter nub :: ; parameter library :: ; result length :: ; c-name: "nub_get_library_filename_length"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-filename parameter nub :: ; parameter library :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_get_library_filename"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-undecorated-name-length parameter nub :: ; parameter library :: ; result length :: ; c-name: "nub_get_library_undecorated_name_length"; end debugger-nub-interface; define debugger-nub-interface nub-get-library-undecorated-name parameter nub :: ; parameter library :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_get_library_undecorated_name"; end debugger-nub-interface; define debugger-nub-interface nub-get-register-name-length parameter nub :: ; parameter register :: ; result length :: ; c-name: "nub_get_register_name_length"; end debugger-nub-interface; define debugger-nub-interface nub-get-register-enumeration-code parameter nub :: ; parameter register :: ; result code :: ; c-name: "nub_get_register_enumeration_code"; end debugger-nub-interface; define debugger-nub-interface nub-get-register-name parameter nub :: ; parameter register :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_get_register_name"; end debugger-nub-interface; define debugger-nub-interface nub-all-registers parameter nub :: ; output parameter first :: ; output parameter last :: ; c-name: "nub_all_registers"; end debugger-nub-interface; define debugger-nub-interface nub-general-registers parameter nub :: ; output parameter first :: ; output parameter last :: ; c-name: "nub_general_registers"; end debugger-nub-interface; define debugger-nub-interface nub-special-registers parameter nub :: ; output parameter first :: ; output parameter last :: ; c-name: "nub_special_registers"; end debugger-nub-interface; /* Not yet used define debugger-nub-interface nub-floating-registers parameter nub :: ; output parameter first :: ; output parameter last :: ; c-name: "nub_floating_registers"; end debugger-nub-interface; */ define debugger-nub-interface nub-page-read-permission parameter nub :: ; parameter address :: ; result protected :: ; c-name: "nub_page_read_permission"; end debugger-nub-interface; define debugger-nub-interface nub-page-write-permission parameter nub :: ; parameter address :: ; result protected :: ; c-name: "nub_page_write_permission"; end debugger-nub-interface; define debugger-nub-interface nub-page-relative-address parameter nub :: ; parameter address :: ; output parameter offset :: ; result num :: ; c-name: "nub_page_relative_address"; end debugger-nub-interface; define debugger-nub-interface nub-virtual-page-size parameter nub :: ; result page-size :: ; c-name: "nub_virtual_page_size"; end debugger-nub-interface; define debugger-nub-interface nub-read-value-from-process-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_value_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-value-to-process-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_value_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-calculate-stack-address parameter nub :: ; parameter nubthread :: ; parameter offset :: ; result addr :: ; c-name: "nub_calculate_stack_address"; end debugger-nub-interface; define debugger-nub-interface nub-target-address-to-string parameter nub :: ; parameter x :: ; parameter buf-size :: ; parameter buf :: ; parameter radix :: ; parameter padding :: ; output parameter trunc? :: ; c-name: "nub_target_address_to_string"; end debugger-nub-interface; define debugger-nub-interface nub-string-to-target-address parameter nub :: ; parameter sz :: ; parameter str :: ; parameter radix :: ; output parameter overflow? :: ; result rv :: ; c-name: "nub_string_to_target_address"; end debugger-nub-interface; /* // TODO: Add these commented-out functions... define debugger-nub-interface nub-read-8b-from-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_8b_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-8b-to-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_8b_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-read-16b-from-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_16b_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-16b-to-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_16b_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-read-32b-from-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_32b_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-32b-to-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_32b_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-read-64b-from-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_64b_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-64b-to-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_64b_to_process_memory"; end debugger-nub-interface; */ define debugger-nub-interface nub-read-single-float-from-process-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_single_float_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-single-float-to-process-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_single_float_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-read-double-float-from-process-memory parameter nub :: ; parameter address :: ; output parameter errcode :: ; result value :: ; c-name: "read_double_float_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-double-float-to-process-memory parameter nub :: ; parameter address :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_double_float_to_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-read-byte-string-from-process-memory parameter nub :: ; parameter address :: ; parameter length :: ; parameter buf :: ; output parameter errcode :: ; c-name: "read_byte_string_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-byte-string-to-process-memory parameter nub :: ; parameter address :: ; parameter length :: ; parameter buf :: ; output parameter errcode :: ; c-name: "write_byte_string_to_process_memory"; end debugger-nub-interface; /* define debugger-nub-interface nub-read-unicode-string-from-memory parameter nub :: ; parameter address :: ; parameter length :: ; parameter buf :: ; output parameter errcode :: ; c-name: "read_unicode_string_from_process_memory"; end debugger-nub-interface; define debugger-nub-interface nub-write-unicode-string-to-memory parameter nub :: ; parameter address :: ; parameter length :: ; parameter buf :: ; output parameter errcode :: ; c-name: "write_unicode_string_to_process_memory"; end debugger-nub-interface; */ define debugger-nub-interface nub-read-value-from-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_value_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-read-value-from-process-register-in-stack-frame parameter nub :: ; parameter thread :: ; parameter register :: ; parameter frame-index :: ; output parameter errcode :: ; result value :: ; c-name: "read_value_from_process_register_in_stack_frame"; end debugger-nub-interface; define debugger-nub-interface nub-write-value-to-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_value_to_process_register"; end debugger-nub-interface; /* // TODO: Add these commented-out functions... define debugger-nub-interface nub-read-8b-from-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_8b_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-8b-to-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_8b_to_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-read-16b-from-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_16b_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-16b-to-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_16b_to_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-read-32b-from-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_32b_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-32b-to-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_32b_to_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-read-64b-from-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_64b_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-64b-to-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_64b_to_process_register"; end debugger-nub-interface; */ define debugger-nub-interface nub-read-single-float-from-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_single_float_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-single-float-to-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_single_float_to_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-read-double-float-from-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; output parameter errcode :: ; result value :: ; c-name: "read_double_float_from_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-write-double-float-to-process-register parameter nub :: ; parameter thread :: ; parameter register :: ; parameter value :: ; output parameter errcode :: ; c-name: "write_double_float_to_process_register"; end debugger-nub-interface; define debugger-nub-interface nub-application-restart parameter nub :: ; c-name: "nub_application_restart"; end debugger-nub-interface; define debugger-nub-interface nub-application-stop parameter nub :: ; c-name: "nub_application_stop"; end debugger-nub-interface; define debugger-nub-interface nub-application-continue parameter nub :: ; c-name: "nub_application_continue"; end debugger-nub-interface; define debugger-nub-interface nub-application-continue-unhandled parameter nub :: ; c-name: "nub_application_continue_unhandled"; end debugger-nub-interface; define debugger-nub-interface nub-application-step parameter nub :: ; parameter n :: ; c-name: "nub_application_step"; end debugger-nub-interface; define debugger-nub-interface nub-application-step-over parameter nub :: ; parameter n :: ; c-name: "nub_application_step_over"; end debugger-nub-interface; define debugger-nub-interface nub-application-step-out parameter nub :: ; c-name: "nub_application_step_out"; end debugger-nub-interface; define debugger-nub-interface nub-set-stepping-control-on-thread parameter nub :: ; parameter thread :: ; parameter fp :: ; parameter calling-fp :: ; parameter count :: ; parameter locations :: ; parameter operation :: ; result errcode :: ; c-name: "nub_set_stepping_control_on_thread"; end debugger-nub-interface; define debugger-nub-interface nub-clear-stepping-control-on-thread parameter nub :: ; parameter thread :: ; c-name: "nub_clear_stepping_control_on_thread"; end debugger-nub-interface; define debugger-nub-interface nub-thread-stop parameter nub :: ; parameter thread :: ; c-name: "nub_thread_stop"; end debugger-nub-interface; define debugger-nub-interface nub-thread-continue parameter nub :: ; parameter thread :: ; c-name: "nub_thread_continue"; end debugger-nub-interface; define debugger-nub-interface nub-thread-suspended? parameter thread :: ; result suspended? :: ; c-name: "nub_thread_suspendedQ"; end debugger-nub-interface; define debugger-nub-interface nub-thread-suspended parameter thread :: ; c-name: "nub_thread_suspended"; end debugger-nub-interface; define debugger-nub-interface nub-thread-resumed parameter thread :: ; c-name: "nub_thread_resumed"; end debugger-nub-interface; define debugger-nub-interface nub-kill-application parameter nub :: ; result errcode :: ; c-name: "nub_kill_application"; end debugger-nub-interface; define debugger-nub-interface nub-register-exit-process-function parameter nub :: ; parameter exit-function :: ; c-name: "nub_register_exit_process_function"; end debugger-nub-interface; define debugger-nub-interface nub-close-application parameter nub :: ; c-name: "nub_close_application"; end debugger-nub-interface; define debugger-nub-interface nub-setup-function-call parameter nub :: ; parameter thread :: ; parameter function :: ; parameter arg-count :: ; parameter arg-vector :: ; output parameter cx-handle :: ; result return-address :: ; c-name: "nub_setup_function_call"; end debugger-nub-interface; define debugger-nub-interface nub-remote-call-spy parameter nub :: ; parameter thread :: ; parameter function :: ; parameter arg-count :: ; parameter args :: ; output parameter errcode :: ; result r :: ; c-name: "nub_remote_call_spy"; end debugger-nub-interface; define debugger-nub-interface nub-get-function-result parameter nub :: ; parameter thread :: ; result r :: ; c-name: "nub_get_function_result"; end debugger-nub-interface; define debugger-nub-interface nub-restore-context parameter nub :: ; parameter thread :: ; parameter ctx-handle :: ; c-name: "nub_restore_context"; end debugger-nub-interface; define debugger-nub-interface nub-set-breakpoint parameter nub :: ; parameter address :: ; result errcode :: ; c-name: "nub_set_breakpoint"; end debugger-nub-interface; define debugger-nub-interface nub-recover-breakpoint parameter nub :: ; parameter thread :: ; c-name: "nub_recover_breakpoint"; end debugger-nub-interface; define debugger-nub-interface nub-clear-breakpoint parameter nub :: ; parameter address :: ; result errcode :: ; c-name: "nub_clear_breakpoint"; end debugger-nub-interface; define debugger-nub-interface nub-query-breakpoint parameter nub :: ; parameter address :: ; result exists :: ; c-name: "nub_query_breakpoint"; end debugger-nub-interface; define debugger-nub-interface nub-wait-for-stop-reason-with-timeout parameter nub :: ; parameter timeout :: ; output parameter event :: ; c-name: "nub_wait_for_stop_reason_with_timeout"; end debugger-nub-interface; define debugger-nub-interface nub-profile-wait-for-stop-reason-with-timeout parameter nub :: ; parameter timeout :: ; parameter profile-interval :: ; output parameter event :: ; c-name: "nub_profile_wait_for_stop_reason_with_timeout"; end debugger-nub-interface; define debugger-nub-interface nub-inform-profiling-started parameter nub :: ; c-name: "nub_inform_profiling_started"; end debugger-nub-interface; define debugger-nub-interface nub-inform-profiling-stopped parameter nub :: ; c-name: "nub_inform_profiling_stopped"; end debugger-nub-interface; define debugger-nub-interface nub-can-receive-first-chance parameter nub :: ; parameter ecode :: ; result yes-or-no :: ; c-name: "nub_can_receive_first_chance"; end debugger-nub-interface; define debugger-nub-interface nub-set-first-chance parameter nub :: ; parameter ecode :: ; c-name: "nub_set_first_chance"; end debugger-nub-interface; define debugger-nub-interface nub-unset-first-chance parameter nub :: ; parameter ecode :: ; c-name: "nub_unset_first_chance"; end debugger-nub-interface; define debugger-nub-interface nub-thread-stop-information parameter nub :: ; parameter t :: ; output parameter fchance :: ; output parameter fstart :: ; output parameter raddr :: ; result ecode :: ; c-name: "nub_thread_stop_information"; end debugger-nub-interface; define debugger-nub-interface nub-wait-for-stop-reason-no-timeout parameter nub :: ; output parameter event :: ; c-name: "nub_wait_for_stop_reason_no_timeout"; end debugger-nub-interface; define debugger-nub-interface nub-profile-wait-for-stop-reason-no-timeout parameter nub :: ; parameter profile-interval :: ; output parameter event :: ; c-name: "nub_profile_wait_for_stop_reason_no_timeout"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-process parameter nub :: ; result process :: ; c-name: "nub_stop_reason_process"; end debugger-nub-interface; define debugger-nub-interface nub-first-hard-coded-breakpoint parameter nub :: ; result is-first :: ; c-name: "nub_first_hard_coded_breakpoint"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-thread parameter nub :: ; result thread :: ; c-name: "nub_stop_reason_thread"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-process-exit-code parameter nub :: ; result code :: ; c-name: "nub_stop_reason_process_exit_code"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-thread-exit-code parameter nub :: ; result code :: ; c-name: "nub_stop_reason_thread_exit_code"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-library parameter nub :: ; result library :: ; c-name: "nub_stop_reason_library"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-violation-op parameter nub :: ; result op :: ; c-name: "nub_stop_reason_violation_op"; end debugger-nub-interface; define debugger-nub-interface nub-exception-first-chance parameter nub :: ; result int-answer :: ; c-name: "nub_exception_first_chance"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-violation-address parameter nub :: ; result addr :: ; c-name: "nub_stop_reason_violation_address"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-exception-address parameter nub :: ; result address :: ; c-name: "nub_stop_reason_exception_address"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-debug-string-address parameter nub :: ; result address :: ; c-name: "nub_stop_reason_debug_string_address"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-debug-string-length parameter nub :: ; result sz :: ; c-name: "nub_stop_reason_debug_string_length"; end debugger-nub-interface; define debugger-nub-interface nub-stop-reason-debug-string-is-unicode parameter nub :: ; result answer :: ; c-name: "nub_stop_reason_debug_string_is_unicode"; end debugger-nub-interface; define debugger-nub-interface nub-initialize-stack-vectors parameter nub :: ; parameter thread :: ; result frame-count :: ; c-name: "nub_initialize_stack_vectors"; end debugger-nub-interface; define debugger-nub-interface nub-read-stack-vectors parameter nub :: ; parameter thread :: ; parameter count :: ; parameter fps :: ; parameter ips :: ; parameter ras :: ; c-name: "nub_read_stack_vectors"; end debugger-nub-interface; define debugger-nub-interface nub-all-frame-lexicals parameter nub :: ; parameter frame :: ; parameter IP :: ; output parameter first :: ; output parameter last :: ; output parameter lookups :: ; c-name: "nub_all_frame_lexicals"; end debugger-nub-interface; define debugger-nub-interface nub-register-interactive-code-segment parameter nub :: ; parameter low-address :: ; parameter high-address :: ; c-name: "nub_register_interactive_code_segment"; end debugger-nub-interface; define debugger-nub-interface nub-get-lexical-variable-name-length parameter nub :: ; parameter lookups :: ; parameter lexical :: ; result length :: ; c-name: "nub_get_lexical_variable_name_length"; end debugger-nub-interface; define debugger-nub-interface nub-get-lexical-variable-name parameter nub :: ; parameter lookups :: ; parameter lexical :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_get_lexical_variable_name"; end debugger-nub-interface; define debugger-nub-interface nub-lexical-variable-address parameter nub :: ; parameter frame :: ; parameter lookups :: ; parameter lexical :: ; output parameter reg? :: ; output parameter hireg :: ; output parameter loreg :: ; output parameter arg? :: ; result address :: ; c-name: "nub_lexical_variable_address"; end debugger-nub-interface; define debugger-nub-interface nub-lookup-symbol-name-length parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result length :: ; c-name: "nub_lookup_symbol_name_length"; end debugger-nub-interface; define debugger-nub-interface nub-lookup-symbol-name parameter nub :: ; parameter lookups :: ; parameter symbol :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_lookup_symbol_name"; end debugger-nub-interface; define debugger-nub-interface nub-lookup-symbol-address parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result address :: ; c-name: "nub_lookup_symbol_address"; end debugger-nub-interface; define debugger-nub-interface nub-lookup-function-debug-start parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result address :: ; c-name: "nub_lookup_function_debug_start"; end debugger-nub-interface; define debugger-nub-interface nub-lookup-function-debug-end parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result address :: ; c-name: "nub_lookup_function_debug_end"; end debugger-nub-interface; /* We don't use this one any more. define debugger-nub-interface nub-lookup-symbol-language parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result lang :: ; c-name: "nub_lookup_symbol_language_code"; end debugger-nub-interface; */ define debugger-nub-interface nub-lookup-function-end parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result addr :: ; c-name: "nub_lookup_function_end"; end debugger-nub-interface; define debugger-nub-interface nub-symbol-is-function parameter nub :: ; parameter lookups :: ; parameter symbol :: ; result answer :: ; c-name: "nub_symbol_is_function"; end debugger-nub-interface; define debugger-nub-interface nub-nearest-symbols parameter nub :: ; parameter address :: ; output parameter library :: ; output parameter lookups :: ; result success :: ; c-name: "nub_nearest_symbols"; end debugger-nub-interface; define debugger-nub-interface nub-closest-symbol parameter nub :: ; parameter address :: ; output parameter lib :: ; output parameter actual :: ; output parameter offset :: ; output parameter nameln :: ; output parameter type :: ; output parameter is-fun :: ; output parameter debugs :: ; output parameter debuge :: ; output parameter lang :: ; output parameter last :: ; result found :: ; c-name: "nub_closest_symbol"; end debugger-nub-interface; define debugger-nub-interface nub-function-bounding-addresses parameter nub :: ; parameter address :: ; output parameter lower :: ; output parameter upper :: ; c-name: "nub_function_bounding_addresses"; end debugger-nub-interface; define debugger-nub-interface nub-closest-symbol-name parameter nub :: ; parameter buf-size :: ; parameter buf :: ; c-name: "nub_closest_symbol_name"; end debugger-nub-interface; define debugger-nub-interface nub-find-symbol-in-library parameter nub :: ; parameter library :: ; parameter name-length :: ; parameter name :: ; output parameter address :: ; output parameter type :: ; output parameter is-fun :: ; output parameter debugs :: ; output parameter debuge :: ; output parameter lang :: ; output parameter last-addr :: ; result found :: ; c-name: "nub_find_symbol_in_library"; end debugger-nub-interface; define debugger-nub-interface nub-dispose-lookups parameter nub :: ; parameter lookups :: ; c-name: "nub_dispose_lookups"; end debugger-nub-interface; define debugger-nub-interface nub-resolve-source-location parameter nub :: ; parameter lib :: ; parameter filename :: ; parameter linenumber :: ; parameter column :: ; output parameter valid? :: ; output parameter path? :: ; output parameter search :: ; output parameter exact? :: ; result code-location :: ; c-name: "nub_resolve_source_location"; end debugger-nub-interface; define debugger-nub-interface nub-fetch-source-locations parameter nub :: ; parameter start-addr :: ; parameter end-addr :: ; result lookups :: ; c-name: "nub_fetch_source_locations"; end debugger-nub-interface; define debugger-nub-interface nub-source-location-address parameter nub :: ; parameter lookups :: ; parameter index :: ; result address :: ; c-name: "nub_source_location_address"; end debugger-nub-interface; define debugger-nub-interface nub-source-location-linenumber parameter nub :: ; parameter lookups :: ; parameter index :: ; result linenumber :: ; c-name: "nub_source_location_linenumber"; end debugger-nub-interface; define debugger-nub-interface nub-source-location-filename-length parameter nub :: ; parameter lookups :: ; result length :: ; c-name: "nub_source_location_filename_length"; end debugger-nub-interface; define debugger-nub-interface nub-source-location-filename parameter nub :: ; parameter lookups :: ; parameter size :: ; parameter buf :: ; c-name: "nub_source_location_filename"; end debugger-nub-interface; define debugger-nub-interface nub-number-of-source-locations parameter nub :: ; parameter lookups :: ; result count :: ; c-name: "nub_number_of_source_locations"; end debugger-nub-interface; define debugger-nub-interface nub-dispose-source-locations parameter nub :: ; parameter lookups :: ; c-name: "nub_dispose_source_locations"; end debugger-nub-interface; define debugger-nub-interface nub-interpret-instruction-at-current-location parameter nub :: ; parameter thread :: ; output parameter flow :: ; output parameter dest :: ; output parameter size :: ; c-name: "nub_interpret_instruction_at_current_location"; end debugger-nub-interface; define debugger-nub-interface nub-dylan-calculate-step-into parameter nub :: ; parameter thread :: ; output parameter flive :: ; output parameter ok? :: ; result destination :: ; c-name: "calculate_step_into_destination"; end debugger-nub-interface; define debugger-nub-interface nub-dylan-thread-environment-block-address parameter nub :: ; parameter thread :: ; output parameter valid? :: ; result teb :: ; c-name: "nub_dylan_thread_environment_block_address"; end debugger-nub-interface; define debugger-nub-interface nub-dylan-thread-mv-buffer-live parameter nub :: ; parameter thread :: ; result code :: ; c-name: "nub_dylan_thread_mv_buffer_live"; end debugger-nub-interface; define debugger-nub-interface nub-older-stack-frame parameter nub :: ; parameter this-one :: ; parameter than-this-one :: ; result answer :: ; c-name: "nub_older_stack_frame"; end debugger-nub-interface; define debugger-nub-interface nub-dylan-current-function parameter nub :: ; parameter thread :: ; result f :: ; c-name: "nub_dylan_current_function"; end debugger-nub-interface; define debugger-nub-interface nub-perform-absolute-relocation parameter nub :: ; parameter ra :: ; parameter da :: ; result errcode :: ; c-name: "nub_perform_absolute_relocation"; end debugger-nub-interface; define debugger-nub-interface nub-perform-relative-relocation parameter nub :: ; parameter ra :: ; parameter da :: ; result errcode :: ; c-name: "nub_perform_relative_relocation"; end debugger-nub-interface;