(defun fun-self (fun)
(declare (type compiled-function fun))
- (sb!kernel:%function-self fun))
+ (sb!kernel:%simple-fun-self fun))
(defun fun-code (fun)
(declare (type compiled-function fun))
- (sb!kernel:function-code-header (fun-self fun)))
+ (sb!kernel:fun-code-header (fun-self fun)))
(defun fun-next (fun)
(declare (type compiled-function fun))
- (sb!kernel:%function-next fun))
+ (sb!kernel:%simple-fun-next fun))
(defun fun-address (function)
(declare (type compiled-function function))
- (- (sb!kernel:get-lisp-obj-address function) sb!vm:function-pointer-type))
+ (- (sb!kernel:get-lisp-obj-address function) sb!vm:fun-pointer-type))
;;; the offset of FUNCTION from the start of its code-component's
;;; instruction area
(segment-offs-to-code-offs (dstate-cur-offs dstate) seg)))
(name
(sb!kernel:code-header-ref code
- (+ woffs sb!vm:function-name-slot)))
+ (+ woffs
+ sb!vm:simple-fun-name-slot)))
(args
(sb!kernel:code-header-ref code
- (+ woffs sb!vm:function-arglist-slot)))
+ (+ woffs
+ sb!vm:simple-fun-arglist-slot)))
(type
(sb!kernel:code-header-ref code
- (+ woffs sb!vm:function-type-slot))))
+ (+ woffs
+ sb!vm:simple-fun-type-slot))))
(format stream ".~A ~S~:A" 'entry name args)
(note (lambda (stream)
(format stream "~:S" type)) ; use format to print NIL as ()
dstate)))
(incf (dstate-next-offs dstate)
- (words-to-bytes sb!vm:function-code-offset)))
+ (words-to-bytes sb!vm:simple-fun-code-offset)))
\f
(defun alignment-hook (chunk stream dstate)
(declare (type dchunk chunk)
;;; SAP-MAKER and LENGTH bytes long in the disassem-state object DSTATE.
;;;
;;; &KEY arguments include :VIRTUAL-LOCATION (by default the same as
-;;; the address), :DEBUG-FUNCTION, :SOURCE-FORM-CACHE (a
+;;; the address), :DEBUG-FUN, :SOURCE-FORM-CACHE (a
;;; SOURCE-FORM-CACHE object), and :HOOKS (a list of OFFS-HOOK
;;; objects).
(defun make-segment (sap-maker length
&key
code virtual-location
- debug-function source-form-cache
+ debug-fun source-form-cache
hooks)
(declare (type (function () sb!sys:system-area-pointer) sap-maker)
(type length length)
(type (or null address) virtual-location)
- (type (or null sb!di:debug-function) debug-function)
+ (type (or null sb!di:debug-fun) debug-fun)
(type (or null source-form-cache) source-form-cache))
(let* ((segment
(%make-segment
(sb!sys:sap-int (funcall sap-maker)))
:hooks hooks
:code code)))
- (add-debugging-hooks segment debug-function source-form-cache)
+ (add-debugging-hooks segment debug-fun source-form-cache)
(add-fun-header-hooks segment)
segment))
(defun print-fun-headers (function)
(declare (type compiled-function function))
(let* ((self (fun-self function))
- (code (sb!kernel:function-code-header self)))
+ (code (sb!kernel:fun-code-header self)))
(format t "Code-header ~S: size: ~S, trace-table-offset: ~S~%"
code
(sb!kernel:code-header-ref code
fun
fun-offset
(sb!kernel:code-header-ref
- code (+ fun-offset sb!vm:function-name-slot))
+ code (+ fun-offset sb!vm:simple-fun-name-slot))
(sb!kernel:code-header-ref
- code (+ fun-offset sb!vm:function-arglist-slot))
+ code (+ fun-offset sb!vm:simple-fun-arglist-slot))
(sb!kernel:code-header-ref
- code (+ fun-offset sb!vm:function-type-slot)))))))
+ code (+ fun-offset sb!vm:simple-fun-type-slot)))))))
\f
;;; getting at the source code...
\f
;;;; stuff to use debugging-info to augment the disassembly
-(defun code-function-map (code)
+(defun code-fun-map (code)
(declare (type sb!kernel:code-component code))
- (sb!di::get-debug-info-function-map (sb!kernel:%code-debug-info code)))
+ (sb!di::get-debug-info-fun-map (sb!kernel:%code-debug-info code)))
(defstruct (location-group (:copier nil))
(locations #() :type (vector (or list fixnum))))
new))
;;; Return a STORAGE-INFO struction describing the object-to-source
-;;; variable mappings from DEBUG-FUNCTION.
-(defun storage-info-for-debug-function (debug-function)
- (declare (type sb!di:debug-function debug-function))
+;;; variable mappings from DEBUG-FUN.
+(defun storage-info-for-debug-fun (debug-fun)
+ (declare (type sb!di:debug-fun debug-fun))
(let ((sc-vec sb!c::*backend-sc-numbers*)
(groups nil)
- (debug-vars (sb!di::debug-function-debug-vars
- debug-function)))
+ (debug-vars (sb!di::debug-fun-debug-vars
+ debug-fun)))
(and debug-vars
(dotimes (debug-var-offset
(length debug-vars)
)))))))
)))
-(defun source-available-p (debug-function)
+(defun source-available-p (debug-fun)
(handler-case
- (sb!di:do-debug-function-blocks (block debug-function)
+ (sb!di:do-debug-fun-blocks (block debug-fun)
(declare (ignore block))
(return t))
(sb!di:no-debug-blocks () nil)))
;;; disassembly. SFCACHE can be either NIL or it can be a
;;; SOURCE-FORM-CACHE structure, in which case it is used to cache
;;; forms from files.
-(defun add-source-tracking-hooks (segment debug-function &optional sfcache)
+(defun add-source-tracking-hooks (segment debug-fun &optional sfcache)
(declare (type segment segment)
- (type (or null sb!di:debug-function) debug-function)
+ (type (or null sb!di:debug-fun) debug-fun)
(type (or null source-form-cache) sfcache))
(let ((last-block-pc -1))
(flet ((add-hook (pc fun &optional before-address)
:before-address before-address)
(seg-hooks segment))))
(handler-case
- (sb!di:do-debug-function-blocks (block debug-function)
+ (sb!di:do-debug-fun-blocks (block debug-fun)
(let ((first-location-in-block-p t))
(sb!di:do-debug-block-locations (loc block)
(let ((pc (sb!di::compiled-code-location-pc loc)))
))))
(sb!di:no-debug-blocks () nil)))))
-(defun add-debugging-hooks (segment debug-function &optional sfcache)
- (when debug-function
+(defun add-debugging-hooks (segment debug-fun &optional sfcache)
+ (when debug-fun
(setf (seg-storage-info segment)
- (storage-info-for-debug-function debug-function))
- (add-source-tracking-hooks segment debug-function sfcache)
- (let ((kind (sb!di:debug-function-kind debug-function)))
+ (storage-info-for-debug-fun debug-fun))
+ (add-source-tracking-hooks segment debug-fun sfcache)
+ (let ((kind (sb!di:debug-fun-kind debug-fun)))
(flet ((anh (n)
(push (make-offs-hook
:offset 0
(defun get-function-segments (function)
(declare (type compiled-function function))
(let* ((code (fun-code function))
- (function-map (code-function-map code))
- (fname (sb!kernel:%function-name function))
+ (fun-map (code-fun-map code))
+ (fname (sb!kernel:%simple-fun-name function))
(sfcache (make-source-form-cache)))
(let ((first-block-seen-p nil)
(nil-block-seen-p nil)
(last-offset 0)
- (last-debug-function nil)
+ (last-debug-fun nil)
(segments nil))
(flet ((add-seg (offs len df)
(when (> len 0)
(push (make-code-segment code offs len
- :debug-function df
+ :debug-fun df
:source-form-cache sfcache)
segments))))
- (dotimes (fmap-index (length function-map))
- (let ((fmap-entry (aref function-map fmap-index)))
+ (dotimes (fmap-index (length fun-map))
+ (let ((fmap-entry (aref fun-map fmap-index)))
(etypecase fmap-entry
(integer
(when first-block-seen-p
(add-seg last-offset
(- fmap-entry last-offset)
- last-debug-function)
- (setf last-debug-function nil))
+ last-debug-fun)
+ (setf last-debug-fun nil))
(setf last-offset fmap-entry))
- (sb!c::compiled-debug-function
- (let ((name (sb!c::compiled-debug-function-name fmap-entry))
- (kind (sb!c::compiled-debug-function-kind fmap-entry)))
+ (sb!c::compiled-debug-fun
+ (let ((name (sb!c::compiled-debug-fun-name fmap-entry))
+ (kind (sb!c::compiled-debug-fun-kind fmap-entry)))
#+nil
(format t ";;; SAW ~S ~S ~S,~S ~D,~D~%"
name kind first-block-seen-p nil-block-seen-p
last-offset
- (sb!c::compiled-debug-function-start-pc fmap-entry))
+ (sb!c::compiled-debug-fun-start-pc fmap-entry))
(cond (#+nil (eq last-offset fun-offset)
(and (equal name fname) (not first-block-seen-p))
(setf first-block-seen-p t))
(return))
(when first-block-seen-p
(setf nil-block-seen-p t))))
- (setf last-debug-function
- (sb!di::make-compiled-debug-function fmap-entry code))
+ (setf last-debug-fun
+ (sb!di::make-compiled-debug-fun fmap-entry code))
)))))
(let ((max-offset (code-inst-area-length code)))
- (when (and first-block-seen-p last-debug-function)
+ (when (and first-block-seen-p last-debug-fun)
(add-seg last-offset
(- max-offset last-offset)
- last-debug-function))
+ last-debug-fun))
(if (null segments)
(let ((offs (fun-insts-offset function)))
(make-code-segment code offs (- max-offset offs)))
(type length length))
(let ((segments nil))
(when code
- (let ((function-map (code-function-map code))
+ (let ((fun-map (code-fun-map code))
(sfcache (make-source-form-cache)))
(let ((last-offset 0)
- (last-debug-function nil))
+ (last-debug-fun nil))
(flet ((add-seg (offs len df)
(let* ((restricted-offs
(min (max start-offset offs)
(when (> restricted-len 0)
(push (make-code-segment code
restricted-offs restricted-len
- :debug-function df
+ :debug-fun df
:source-form-cache sfcache)
segments)))))
- (dotimes (fmap-index (length function-map))
- (let ((fmap-entry (aref function-map fmap-index)))
- (etypecase fmap-entry
+ (dotimes (fun-map-index (length fun-map))
+ (let ((fun-map-entry (aref fun-map fun-map-index)))
+ (etypecase fun-map-entry
(integer
- (add-seg last-offset (- fmap-entry last-offset)
- last-debug-function)
- (setf last-debug-function nil)
- (setf last-offset fmap-entry))
- (sb!c::compiled-debug-function
- (setf last-debug-function
- (sb!di::make-compiled-debug-function fmap-entry
- code))))))
- (when last-debug-function
+ (add-seg last-offset (- fun-map-entry last-offset)
+ last-debug-fun)
+ (setf last-debug-fun nil)
+ (setf last-offset fun-map-entry))
+ (sb!c::compiled-debug-fun
+ (setf last-debug-fun
+ (sb!di::make-compiled-debug-fun fun-map-entry
+ code))))))
+ (when last-debug-fun
(add-seg last-offset
(- (code-inst-area-length code) last-offset)
- last-debug-function))))))
+ last-debug-fun))))))
(if (null segments)
(make-code-segment code start-offset length)
(nreverse segments))))
(stream *standard-output*)
(use-labels t))
#!+sb-doc
- "Disassemble the machine code associated with OBJECT, which can be a
+ "Disassemble the compiled code associated with OBJECT, which can be a
function, a lambda expression, or a symbol with a function definition. If
it is not already compiled, the compiler is called to produce something to
disassemble."
(type (or (member t) stream) stream)
(type (member t nil) use-labels))
(pprint-logical-block (*standard-output* nil :per-line-prefix "; ")
- (let ((fun (compiled-function-or-lose object)))
- (if (typep fun 'sb!kernel:byte-function)
- (sb!c:disassem-byte-fun fun)
- ;; We can't detect closures, so be careful.
- (disassemble-function (fun-self fun)
- :stream stream
- :use-labels use-labels)))
+ (disassemble-function (compiled-function-or-lose object)
+ :stream stream
+ :use-labels use-labels)
nil))
;;; Disassembles the given area of memory starting at ADDRESS and