This is the gtirb Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 05:24:23 2024 GMT+0.
gtirb/gtirb.asd
gtirb/gtirb/file-type.lisp
gtirb/ranged/file-type.lisp
gtirb/utility/file-type.lisp
proto/proto/AuxData.lisp
proto/proto/ByteInterval.lisp
proto/proto/CFG.lisp
proto/proto/CodeBlock.lisp
proto/proto/DataBlock.lisp
proto/proto/IR.lisp
proto/proto/Module.lisp
proto/proto/ProxyBlock.lisp
proto/proto/Section.lisp
proto/proto/Symbol.lisp
proto/proto/SymbolicExpression.lisp
The main system appears first, followed by any subsystem dependency.
gtirb
Common Lisp library for GTIRB
GrammaTech
MIT
A Common Lisp front end to the GrammaTech
Intermediate Representation for Bianries (GTIRB). GTIRB is
serialized using Google’s protocol buffers. This library wraps the
raw protocol buffer serialization with a more Lispy interface.
asdf-package-system
(system).
gtirb/gtirb
(system).
gtirb/gtirb
GrammaTech
MIT
alexandria
(system).
graph
(system).
trivia
(system).
trivial-utf-8
(system).
gtirb/ranged
(system).
gtirb/utility
(system).
named-readtables
(system).
curry-compose-reader-macros
(system).
proto
(system).
trivial-package-local-nicknames
(system).
cl-intbytes
(system).
Modules are listed depth-first from the system components tree.
proto/proto
proto
(system).
auxdata.lisp
(file).
byteinterval.lisp
(file).
cfg.lisp
(file).
codeblock.lisp
(file).
datablock.lisp
(file).
ir.lisp
(file).
module.lisp
(file).
proxyblock.lisp
(file).
section.lisp
(file).
symbol.lisp
(file).
symbolicexpression.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
gtirb/gtirb.asd
gtirb/gtirb/file-type.lisp
gtirb/ranged/file-type.lisp
gtirb/utility/file-type.lisp
proto/proto/AuxData.lisp
proto/proto/ByteInterval.lisp
proto/proto/CFG.lisp
proto/proto/CodeBlock.lisp
proto/proto/DataBlock.lisp
proto/proto/IR.lisp
proto/proto/Module.lisp
proto/proto/ProxyBlock.lisp
proto/proto/Section.lisp
proto/proto/Symbol.lisp
proto/proto/SymbolicExpression.lisp
gtirb/gtirb/file-type.lisp
gtirb/gtirb
(system).
*is-equal-p-verbose-p*
(special variable).
*preserve-symbolic-expressions*
(special variable).
address
(method).
address
(method).
address
(method).
(setf address)
(method).
address-range
(generic function).
addressp
(method).
(setf addressp)
(method).
at-address
(generic function).
at-end
(method).
(setf at-end)
(method).
aux-data
(reader method).
aux-data
(reader method).
(setf aux-data)
(writer method).
(setf aux-data)
(writer method).
aux-data
(class).
aux-data-data
(generic function).
(setf aux-data-data)
(method).
aux-data-type
(generic function).
(setf aux-data-type)
(method).
binary-path
(method).
(setf binary-path)
(method).
blocks
(generic function).
(setf blocks)
(writer method).
byte-interval
(reader method).
byte-interval
(reader method).
(setf byte-interval)
(writer method).
(setf byte-interval)
(writer method).
byte-interval
(class).
byte-intervals
(reader method).
(setf byte-intervals)
(writer method).
(setf bytes)
(setf expander).
bytes
(generic function).
cfg
(reader method).
(setf cfg)
(writer method).
code-block
(class).
conditional
(method).
(setf conditional)
(method).
contents
(method).
(setf contents)
(method).
data-block
(class).
decode-mode
(method).
(setf decode-mode)
(method).
direct
(method).
(setf direct)
(method).
edge-label
(class).
edge-type
(method).
(setf edge-type)
(method).
entry-point
(generic function).
(setf entry-point)
(method).
file-format
(method).
(setf file-format)
(method).
flags
(method).
(setf flags)
(method).
get-uuid
(generic function).
(setf get-uuid)
(generic function).
gtirb
(reader method).
(setf gtirb)
(writer method).
gtirb
(class).
gtirb-block
(class).
gtirb-byte-block
(class).
gtirb-node
(class).
gtirb-version
(constant).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
initialize-instance
(method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
ir
(reader method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
(setf ir)
(writer method).
ir
(condition).
is-equal-p
(function).
isa
(method).
(setf isa)
(method).
module
(reader method).
module
(reader method).
module
(reader method).
(setf module)
(writer method).
(setf module)
(writer method).
(setf module)
(writer method).
module
(class).
modules
(reader method).
(setf modules)
(writer method).
name
(method).
name
(method).
name
(method).
(setf name)
(method).
(setf name)
(method).
(setf name)
(method).
offset
(reader method).
offset
(reader method).
offset
(method).
offset
(method).
offset
(method).
(setf offset)
(writer method).
(setf offset)
(writer method).
(setf offset)
(method).
(setf offset)
(method).
(setf offset)
(method).
on-address
(generic function).
payload
(generic function).
(setf payload)
(method).
(setf payload)
(method).
(setf payload)
(method).
preferred-addr
(method).
(setf preferred-addr)
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
print-object
(method).
protobuf-version
(constant).
proxies
(reader method).
(setf proxies)
(writer method).
read-gtirb
(generic function).
rebase-delta
(method).
(setf rebase-delta)
(method).
remove-uuid
(generic function).
scale
(method).
(setf scale)
(method).
section
(reader method).
(setf section)
(writer method).
section
(class).
sections
(reader method).
(setf sections)
(writer method).
size
(method).
size
(method).
size
(method).
size
(method).
(setf size)
(method).
(setf size)
(method).
(setf size)
(method).
(setf size)
(method).
sym-addr-addr
(class).
sym-addr-const
(class).
sym-stack-const
(class).
symbol
(class).
symbolic-expressions
(method).
symbolic-expressions
(reader method).
(setf symbolic-expressions)
(writer method).
symbols
(reader method).
symbols
(reader method).
(setf symbols)
(writer method).
(setf symbols)
(writer method).
update-proto
(generic function).
uuid
(generic function).
value
(method).
(setf value)
(method).
version
(method).
(setf version)
(method).
write-gtirb
(function).
*is-equal-p-verbose-output-buffer*
(special variable).
*is-equal-p-verbose-output-length*
(special variable).
+edge-label-type-map+
(constant).
+module-file-format-map+
(constant).
+module-isa-map+
(constant).
+section-flags-map+
(constant).
aux-data-decode
(function).
aux-data-encode
(function).
aux-data-from-proto
(function).
aux-data-slot-definition
(special variable).
aux-data-to-proto
(function).
aux-data-type-print
(function).
aux-data-type-read
(function).
by-address
(reader method).
(setf by-address)
(writer method).
by-uuid
(reader method).
(setf by-uuid)
(writer method).
compare-or-verbose
(macro).
decode
(function).
define-proto-backed-class
(macro).
delete-address
(generic function).
encode
(function).
insert-address
(generic function).
is-equal-p-internal
(generic function).
matching
(function).
message
(reader method).
object
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
proto
(reader method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
(setf proto)
(writer method).
proto-backed
(class).
proxy-block
(class).
referent-uuid
(method).
(setf referent-uuid)
(method).
set-parent-uuid
(generic function).
setf-bytes-after
(generic function).
(setf shift-subseq)
(setf expander).
shift-subseq
(function).
start-case
(macro).
symbolic-expression
(class).
version.txt
(special variable).
gtirb/ranged/file-type.lisp
gtirb/ranged
(system).
make-ranged
(function).
ranged-delete
(function).
ranged-find
(function).
ranged-find-at
(function).
ranged-insert
(function).
copy-uuid-interval
(function).
make-uuid-interval
(function).
uuid-interval
(structure).
uuid-interval-end
(function).
(setf uuid-interval-end)
(function).
uuid-interval-p
(function).
uuid-interval-start
(function).
(setf uuid-interval-start)
(function).
uuid-interval-uuid
(reader).
(setf uuid-interval-uuid)
(writer).
uuid-interval=
(function).
gtirb/utility/file-type.lisp
gtirb/utility
(system).
force-byte-array
(function).
integer-to-uuid
(function).
new-uuid
(function).
read-proto
(generic function).
uuid-to-integer
(function).
write-proto
(function).
Packages are listed by definition order.
gtirb/gtirb
gtirb
alexandria
.
common-lisp
.
curry-compose-reader-macros
.
editor-hints.named-readtables
.
graph/graph
.
gtirb/ranged
.
gtirb/utility
.
trivia.level2
.
trivial-utf-8
.
*is-equal-p-verbose-p*
(special variable).
*preserve-symbolic-expressions*
(special variable).
address
(generic function).
(setf address)
(generic function).
address-range
(generic function).
addressp
(generic function).
(setf addressp)
(generic function).
at-address
(generic function).
at-end
(generic function).
(setf at-end)
(generic function).
aux-data
(generic reader).
(setf aux-data)
(generic writer).
aux-data
(class).
aux-data-data
(generic function).
(setf aux-data-data)
(generic function).
aux-data-type
(generic function).
(setf aux-data-type)
(generic function).
binary-path
(generic function).
(setf binary-path)
(generic function).
blocks
(generic function).
(setf blocks)
(generic writer).
byte-interval
(generic reader).
(setf byte-interval)
(generic writer).
byte-interval
(class).
byte-intervals
(generic reader).
(setf byte-intervals)
(generic writer).
(setf bytes)
(setf expander).
bytes
(generic function).
cfg
(generic reader).
(setf cfg)
(generic writer).
code-block
(class).
conditional
(generic function).
(setf conditional)
(generic function).
contents
(generic function).
(setf contents)
(generic function).
data-block
(class).
decode-mode
(generic function).
(setf decode-mode)
(generic function).
direct
(generic function).
(setf direct)
(generic function).
edge-label
(class).
edge-type
(generic function).
(setf edge-type)
(generic function).
entry-point
(generic function).
(setf entry-point)
(generic function).
file-format
(generic function).
(setf file-format)
(generic function).
flags
(generic function).
(setf flags)
(generic function).
get-uuid
(generic function).
(setf get-uuid)
(generic function).
gtirb
(generic reader).
(setf gtirb)
(generic writer).
gtirb
(class).
gtirb-block
(class).
gtirb-byte-block
(class).
gtirb-node
(class).
gtirb-version
(constant).
ir
(generic reader).
(setf ir)
(generic writer).
ir
(condition).
is-equal-p
(function).
isa
(generic function).
(setf isa)
(generic function).
module
(generic reader).
(setf module)
(generic writer).
module
(class).
modules
(generic reader).
(setf modules)
(generic writer).
name
(generic function).
(setf name)
(generic function).
offset
(generic function).
(setf offset)
(generic function).
on-address
(generic function).
payload
(generic function).
(setf payload)
(generic function).
preferred-addr
(generic function).
(setf preferred-addr)
(generic function).
protobuf-version
(constant).
proxies
(generic reader).
(setf proxies)
(generic writer).
read-gtirb
(generic function).
rebase-delta
(generic function).
(setf rebase-delta)
(generic function).
remove-uuid
(generic function).
scale
(generic function).
(setf scale)
(generic function).
section
(generic reader).
(setf section)
(generic writer).
section
(class).
sections
(generic reader).
(setf sections)
(generic writer).
size
(generic function).
(setf size)
(generic function).
sym-addr-addr
(class).
sym-addr-const
(class).
sym-stack-const
(class).
symbol
(class).
symbolic-expressions
(generic function).
(setf symbolic-expressions)
(generic writer).
symbols
(generic reader).
(setf symbols)
(generic writer).
update-proto
(generic function).
uuid
(generic function).
value
(generic function).
(setf value)
(generic function).
version
(generic function).
(setf version)
(generic function).
write-gtirb
(function).
*decode-data*
(special variable).
*is-equal-p-verbose-output-buffer*
(special variable).
*is-equal-p-verbose-output-length*
(special variable).
+edge-label-type-map+
(constant).
+module-file-format-map+
(constant).
+module-isa-map+
(constant).
+section-flags-map+
(constant).
aux-data-decode
(function).
aux-data-encode
(function).
aux-data-from-proto
(function).
aux-data-slot-definition
(special variable).
aux-data-to-proto
(function).
aux-data-type-print
(function).
aux-data-type-read
(function).
by-address
(generic reader).
(setf by-address)
(generic writer).
by-uuid
(generic reader).
(setf by-uuid)
(generic writer).
compare-or-verbose
(macro).
decode
(function).
define-proto-backed-class
(macro).
delete-address
(generic function).
encode
(function).
insert-address
(generic function).
is-equal-p-internal
(generic function).
matching
(function).
message
(generic reader).
object
(generic reader).
proto
(generic reader).
(setf proto)
(generic writer).
proto-backed
(class).
proxy-block
(class).
referent-uuid
(generic function).
(setf referent-uuid)
(generic function).
set-parent-uuid
(generic function).
setf-bytes-after
(generic function).
(setf shift-subseq)
(setf expander).
shift-subseq
(function).
start-case
(macro).
symbolic-expression
(class).
version.txt
(special variable).
gtirb/utility
common-lisp
.
force-byte-array
(function).
integer-to-uuid
(function).
new-uuid
(function).
read-proto
(generic function).
uuid-to-integer
(function).
write-proto
(function).
gtirb/ranged
common-lisp
.
make-ranged
(function).
ranged-delete
(function).
ranged-find
(function).
ranged-find-at
(function).
ranged-insert
(function).
copy-uuid-interval
(function).
make-uuid-interval
(function).
uuid-interval
(structure).
uuid-interval-end
(function).
(setf uuid-interval-end)
(function).
uuid-interval-p
(function).
uuid-interval-start
(function).
(setf uuid-interval-start)
(function).
uuid-interval-uuid
(reader).
(setf uuid-interval-uuid)
(writer).
uuid-interval=
(function).
Definitions are sorted by export status, category, package, and then by lexicographic order.
GTIRB Version as a string of "MAJOR.MINOR.PATCH".
GTIRB Protobuf Version as a non-negative integer.
Compare equality verbosely in the ‘is-equal-p’ function.
This may be useful to print contextual information when an equality
comparison fails for a large object with many nested objects.
When true, (setf bytes) preserves symbolic expressions intersecting the assigned part of the object.
bytes
(generic function).
Force ARRAY into a byte array.
Return t if LEFT and RIGHT are equal.
Recursively descend into any sub-structure. Custom recursive equality
predicates are defined for common Common Lisp data structures as well
as all GTIRB structures.
Return a new random UUID.
Write a GTIRB IR object to PATH.
Write OBJECT to PATH.
gtirb-byte-block
)) ¶byte-interval
)) ¶byte-interval
)) ¶Optionally specify the address in memory at which this
~ byte-interval should start. Byte-intervals without address could
exist anywhere in memory.
Return any address range of the PROTO-BACKED-OBJECT GTIRB object.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶sym-addr-addr
)) ¶sym-addr-const
)) ¶sym-stack-const
)) ¶byte-interval
)) ¶edge-label
)) ¶byte-interval
)) ¶Does this byte-interval have an address.
byte-interval
)) ¶Does this byte-interval have an address.
Find all objects in OBJECT starting at ADDRESS.
proxy-block
) address) ¶data-block
) address) ¶code-block
) address) ¶byte-interval
) address) ¶module
)) ¶module
)) ¶A-list of auxiliary data objects keyed by string name.
Aux-Data tables may hold structured or unstructured data. This data
may refer to elements of the GTIRB IR through uuids. Information
relevant to a particular module will be stored in Aux-Data tables
accessible from the specific module. Aux-Data tables only exist on
modules and on GTIRB IR instances.
gtirb
)) ¶gtirb
)) ¶A-list of auxiliary data objects keyed by string name.
Aux-Data tables may hold structured or unstructured data. This data
may refer to elements of the GTIRB IR through uuids. Information
relevant to a particular module will be stored in Aux-Data tables
accessible from the specific module. Aux-Data tables only exist on
modules and on GTIRB IR instances.
Access the structured representation of AUX-DATAs data.
Access the structured type of AUX-DATA.
List of gtirb-byte-block objects in this object. Primitive accessor for byte-interval.
byte-interval
)) ¶Blocks in this byte-interval.
This list could include ‘code-block’ or ‘data-block’ elements (which
both subclass the ‘gtirb-byte-block’ class) but not ‘proxy-block’
elements as proxy blocks do not hold bytes.
byte-interval
)) ¶Blocks in this byte-interval.
This list could include ‘code-block’ or ‘data-block’ elements (which
both subclass the ‘gtirb-byte-block’ class) but not ‘proxy-block’
elements as proxy blocks do not hold bytes.
data-block
)) ¶data-block
)) ¶Access the BYTE-INTERVAL of this DATA-BLOCK.
code-block
)) ¶code-block
)) ¶Access the BYTE-INTERVAL of this CODE-BLOCK.
Return the bytes held by OBJECT.
byte-interval
) &optional start end) ¶gtirb-byte-block
) &optional start end) ¶gtirb
)) ¶gtirb
)) ¶Control flow graph (CFG) represented as a ‘graph:digraph’.
Nodes in the graph hold the UUIDs of code blocks which may be looked
up using ‘get-uuid’. Edges on the graph are labeled with ‘edge-label’
objects which provide information on the nature of the control flow of
the graph.
cfg
.
edge-label
)) ¶This is true if this edge is due to a conditional instruction.
edge-label
)) ¶This is true if this edge is due to a conditional instruction.
byte-interval
)) ¶A vector holding the actual bytes of this byte interval.
byte-interval
)) ¶A vector holding the actual bytes of this byte interval.
code-block
)) ¶Only present on architecture with multiple decode-modes.
code-block
)) ¶Only present on architecture with multiple decode-modes.
edge-label
)) ¶Is this a direct (as opposed to indirect) control flow edge.
edge-label
)) ¶Is this a direct (as opposed to indirect) control flow edge.
edge-label
)) ¶The type of an edge indicates the nature of the
control flow along it. E.g., "branch," "call," "fallthrough,"
and "return" are examples.
edge-label
)) ¶The type of an edge indicates the nature of the
control flow along it. E.g., "branch," "call," "fallthrough,"
and "return" are examples.
The code-block which is the entry point of MODULE.
section
)) ¶Flags holding common properties of this section.
These flags only hold those section properties which are relatively
universal including read, write, execute permissions, whether the
section is loaded into memory at run-time or not, whether the section
is zero initialized, and whether the section is thread-local.
section
)) ¶Flags holding common properties of this section.
These flags only hold those section properties which are relatively
universal including read, write, execute permissions, whether the
section is loaded into memory at run-time or not, whether the section
is zero initialized, and whether the section is thread-local.
Get the referent of UUID in OBJECT.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶byte-interval
)) ¶Register REFERENT behind UUID in OBJECT.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶byte-interval
)) ¶aux-data
)) ¶Access the top-level IR of this AUX-DATA.
ir
.
proxy-block
)) ¶Access the top-level IR of this PROXY-BLOCK.
ir
.
data-block
)) ¶Access the top-level IR of this DATA-BLOCK.
ir
.
code-block
)) ¶Access the top-level IR of this CODE-BLOCK.
ir
.
sym-addr-addr
)) ¶Access the top-level IR of this SYM-ADDR-ADDR.
ir
.
sym-addr-const
)) ¶Access the top-level IR of this SYM-ADDR-CONST.
ir
.
sym-stack-const
)) ¶Access the top-level IR of this SYM-STACK-CONST.
ir
.
byte-interval
)) ¶Access the top-level IR of this BYTE-INTERVAL.
ir
.
section
)) ¶Access the top-level IR of this SECTION.
ir
.
symbol
)) ¶Access the top-level IR of this SYMBOL.
ir
.
edge-label
)) ¶Access the top-level IR of this EDGE-LABEL.
ir
.
module
)) ¶Access the top-level IR of this MODULE.
ir
.
aux-data
)) ¶Access the top-level IR of this AUX-DATA.
ir
.
proxy-block
)) ¶Access the top-level IR of this PROXY-BLOCK.
ir
.
data-block
)) ¶Access the top-level IR of this DATA-BLOCK.
ir
.
code-block
)) ¶Access the top-level IR of this CODE-BLOCK.
ir
.
sym-addr-addr
)) ¶Access the top-level IR of this SYM-ADDR-ADDR.
ir
.
sym-addr-const
)) ¶Access the top-level IR of this SYM-ADDR-CONST.
ir
.
sym-stack-const
)) ¶Access the top-level IR of this SYM-STACK-CONST.
ir
.
byte-interval
)) ¶Access the top-level IR of this BYTE-INTERVAL.
ir
.
section
)) ¶Access the top-level IR of this SECTION.
ir
.
symbol
)) ¶Access the top-level IR of this SYMBOL.
ir
.
edge-label
)) ¶Access the top-level IR of this EDGE-LABEL.
ir
.
module
)) ¶Access the top-level IR of this MODULE.
ir
.
proxy-block
)) ¶proxy-block
)) ¶Access the MODULE of this PROXY-BLOCK.
data-block
)) ¶Offset into this block’s bytes in the block’s byte-interval.
code-block
)) ¶Offset into this block’s bytes in the block’s byte-interval.
sym-addr-addr
)) ¶sym-addr-const
)) ¶sym-stack-const
)) ¶data-block
)) ¶Offset into this block’s bytes in the block’s byte-interval.
code-block
)) ¶Offset into this block’s bytes in the block’s byte-interval.
sym-addr-addr
)) ¶sym-addr-const
)) ¶sym-stack-const
)) ¶Find all objects in OBJECT between START-ADDRESS and END-ADDRESS.
proxy-block
) start &optional end) ¶data-block
) start &optional end) ¶code-block
) start &optional end) ¶byte-interval
) start &optional end) ¶Provide access to the referent or value of SYMBOL.
module
)) ¶module
)) ¶Hash-table of proxy-blocks keyed by UUID.
Proxy-blocks in GTIRB are used to represent cross-module linkages.
For example when code in a module calls to a function defined in an
external library, the CFG for that IR instance may represent this call
with a call edge to a proxy block representing the external called
function.
Read a protobuf serialized GTIRB instance from SOURCE.
Read protobuf object of class CLASS from SOURCE.
Remove the entry for UUID from OBJECT.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶byte-interval
)) ¶sym-addr-addr
)) ¶sym-addr-addr
)) ¶byte-interval
)) ¶byte-interval
)) ¶Access the SECTION of this BYTE-INTERVAL.
data-block
)) ¶The length of the bytes held by this data block.
code-block
)) ¶The length of the bytes held by this code block.
byte-interval
)) ¶The size of this byte-interval.
It is possible for the size of a byte-interval to be larger than the
number of bytes in the byte interval’s ‘contents’ if portions of the
byte-interval are not represented statically but are zero-initialized
at runtime.
data-block
)) ¶The length of the bytes held by this data block.
code-block
)) ¶The length of the bytes held by this code block.
byte-interval
)) ¶byte-interval
)) ¶The size of this byte-interval.
It is possible for the size of a byte-interval to be larger than the
number of bytes in the byte interval’s ‘contents’ if portions of the
byte-interval are not represented statically but are zero-initialized
at runtime.
gtirb-byte-block
)) ¶byte-interval
)) ¶Hash of symbolic-expressions keyed by offset.
byte-interval
)) ¶Hash of symbolic-expressions keyed by offset.
symbolic-expression
)) ¶symbolic-expression
)) ¶Symbol(s) appearing in this symbolic expression.
Update and return the ‘proto’ field of PROTO-BACKED-OBJECT.
This will ensure that any changes made to PROTO-BACKED-OBJECT outside
of its protocol buffer, e.g. any slots initialized using the
:from-proto option to ‘define-proto-backed-class’, are synchronized
against the object’s protocol buffer.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶sym-addr-addr
)) ¶sym-addr-const
)) ¶sym-stack-const
)) ¶sym-addr-addr
)) ¶sym-addr-const
)) ¶sym-stack-const
)) ¶byte-interval
)) ¶edge-label
)) ¶proto-backed
)) ¶Return the UUID for OBJECT as an integer.
proto-backed
)) ¶sym-addr-const
) &key) ¶sym-addr-addr
) &key) ¶data-block
) &key) ¶edge-label
) &key) ¶byte-interval
) &key) ¶sym-stack-const
) &key) ¶code-block
) &key) ¶proxy-block
) &key) ¶data-block
) stream) ¶edge-label
) stream) ¶byte-interval
) stream) ¶code-block
) stream) ¶symbolic-expression
) stream) ¶proxy-block
) stream) ¶Condition raised on GTIRB data structure violations.
error
.
(quote nil)
:message
This slot is read-only.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:aux-data
(make-instance (quote gtirb.proto:aux-data))
:proto
Byte-interval in a GTIRB instance.
address
.
(setf address)
.
address-range
.
(setf addressp)
.
addressp
.
at-address
.
(setf blocks)
.
blocks
.
bytes
.
(setf contents)
.
contents
.
(setf get-uuid)
.
get-uuid
.
initialize-instance
.
(setf ir)
.
ir
.
is-equal-p-internal
.
on-address
.
print-object
.
(setf proto)
.
proto
.
remove-uuid
.
(setf section)
.
section
.
set-parent-uuid
.
setf-bytes-after
.
(setf size)
.
(setf size)
.
size
.
(setf symbolic-expressions)
.
symbolic-expressions
.
update-proto
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:byte-interval
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:byte-interval)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this BYTE-INTERVAL.
Access the SECTION of this BYTE-INTERVAL.
(or null gtirb/gtirb:section)
:section
Blocks in this byte-interval.
This list could include ‘code-block’ or ‘data-block’ elements (which
both subclass the ‘gtirb-byte-block’ class) but not ‘proxy-block’
elements as proxy blocks do not hold bytes.
list
:blocks
Hash of symbolic-expressions keyed by offset.
hash-table
:symbolic-expressions
Code-block in a GTIRB IR instance.
address-range
.
at-address
.
(setf byte-interval)
.
byte-interval
.
(setf decode-mode)
.
decode-mode
.
(setf entry-point)
.
(setf get-uuid)
.
get-uuid
.
initialize-instance
.
(setf ir)
.
ir
.
is-equal-p-internal
.
(setf offset)
.
offset
.
on-address
.
print-object
.
(setf proto)
.
proto
.
remove-uuid
.
set-parent-uuid
.
(setf size)
.
size
.
update-proto
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:code-block
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:code-block)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this CODE-BLOCK.
Access the BYTE-INTERVAL of this CODE-BLOCK.
(or null gtirb/gtirb:byte-interval)
:byte-interval
Offset into this block’s bytes in the block’s byte-interval.
number
:offset
Data-block in a GTIRB IR instance.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:data-block
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:data-block)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this DATA-BLOCK.
Access the BYTE-INTERVAL of this DATA-BLOCK.
(or null gtirb/gtirb:byte-interval)
:byte-interval
Offset into this block’s bytes in the block’s byte-interval.
number
:offset
Label on a CFG edge.
This indicates the type of control flow along this edge.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:edge-label
(make-instance (quote gtirb.proto:edge-label))
:proto
Base class of an instance of GTIRB IR.
address-range
.
at-address
.
(setf aux-data)
.
aux-data
.
blocks
.
(setf by-address)
.
by-address
.
(setf by-uuid)
.
by-uuid
.
(setf cfg)
.
cfg
.
delete-address
.
(setf get-uuid)
.
get-uuid
.
initialize-instance
.
insert-address
.
ir
.
(setf ir)
.
is-equal-p-internal
.
(setf modules)
.
modules
.
on-address
.
print-object
.
(setf proto)
.
proto
.
remove-uuid
.
update-proto
.
(setf version)
.
version
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:ir
(make-instance (quote gtirb.proto:ir))
:proto
Access the top-level IR of this GTIRB.
List of the modules on a top-level GTIRB IR instance.
list
gtirb/gtirb:modules
Control flow graph (CFG) represented as a ‘graph:digraph’.
Nodes in the graph hold the UUIDs of code blocks which may be looked
up using ‘get-uuid’. Edges on the graph are labeled with ‘edge-label’
objects which provide information on the nature of the control flow of
the graph.
graph/graph:digraph
cfg
.
A-list of auxiliary data objects keyed by string name.
Aux-Data tables may hold structured or unstructured data. This data
may refer to elements of the GTIRB IR through uuids. Information
relevant to a particular module will be stored in Aux-Data tables
accessible from the specific module. Aux-Data tables only exist on
modules and on GTIRB IR instances.
list
Internal cache for UUID-based lookup.
hash-table
(make-hash-table)
Internal cache for Address-based lookup.
(gtirb/ranged:make-ranged)
Super-class of the ‘code-block’ and ‘data-block’ classes.
This class abstracts over all GTIRB blocks which are able to hold bytes.
Objects with a UUID contained in a GTIRB instance.
Module of a GTIRB IR instance.
address-range
.
at-address
.
(setf aux-data)
.
aux-data
.
(setf binary-path)
.
binary-path
.
blocks
.
(setf entry-point)
.
entry-point
.
(setf file-format)
.
file-format
.
(setf get-uuid)
.
get-uuid
.
(setf gtirb)
.
gtirb
.
initialize-instance
.
(setf ir)
.
ir
.
is-equal-p-internal
.
(setf isa)
.
isa
.
(setf name)
.
name
.
on-address
.
(setf preferred-addr)
.
preferred-addr
.
print-object
.
(setf proto)
.
proto
.
(setf proxies)
.
proxies
.
(setf rebase-delta)
.
rebase-delta
.
remove-uuid
.
(setf sections)
.
sections
.
set-parent-uuid
.
(setf symbols)
.
symbols
.
update-proto
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:module
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:module)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this MODULE.
Access the GTIRB of this MODULE.
(or null gtirb/gtirb:gtirb)
:gtirb
Hash-table of proxy-blocks keyed by UUID.
Proxy-blocks in GTIRB are used to represent cross-module linkages.
For example when code in a module calls to a function defined in an
external library, the CFG for that IR instance may represent this call
with a call edge to a proxy block representing the external called
function.
hash-table
(make-hash-table)
Hash-table of symbols keyed by UUID.
list
List of the sections comprising this module.
list
A-list of auxiliary data objects keyed by string name.
Aux-Data tables may hold structured or unstructured data. This data
may refer to elements of the GTIRB IR through uuids. Information
relevant to a particular module will be stored in Aux-Data tables
accessible from the specific module. Aux-Data tables only exist on
modules and on GTIRB IR instances.
list
Section in a GTIRB IR instance.
address
.
address-range
.
at-address
.
blocks
.
(setf byte-intervals)
.
byte-intervals
.
(setf flags)
.
flags
.
(setf get-uuid)
.
get-uuid
.
initialize-instance
.
(setf ir)
.
ir
.
is-equal-p-internal
.
(setf module)
.
module
.
(setf name)
.
name
.
on-address
.
print-object
.
(setf proto)
.
proto
.
remove-uuid
.
set-parent-uuid
.
size
.
update-proto
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:section
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:section)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this SECTION.
Access the MODULE of this SECTION.
(or null gtirb/gtirb:module)
:module
Byte-intervals holding all of the section’s bytes.
list
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:sym-addr-addr
(make-instance (quote gtirb.proto:sym-addr-addr))
:proto
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:sym-addr-const
(make-instance (quote gtirb.proto:sym-addr-const))
:proto
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:sym-stack-const
(make-instance (quote gtirb.proto:sym-stack-const))
:proto
Symbol with it’s NAME and an optional VALUE or REFERENT.
address-range
.
at-address
.
(setf at-end)
.
at-end
.
(setf get-uuid)
.
get-uuid
.
initialize-instance
.
(setf ir)
.
ir
.
is-equal-p-internal
.
(setf module)
.
module
.
(setf name)
.
name
.
on-address
.
(setf payload)
.
(setf payload)
.
(setf payload)
.
payload
.
print-object
.
(setf proto)
.
proto
.
(setf referent-uuid)
.
referent-uuid
.
remove-uuid
.
set-parent-uuid
.
update-proto
.
(setf value)
.
value
.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:symbol
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:symbol)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this SYMBOL.
Access the MODULE of this SYMBOL.
(or null gtirb/gtirb:module)
:module
Buffer to hold output of is-equal-p verbose failure messages.
Maximum length of output to show of ‘*is-equal-p-verbose-output-buffer*’.
Define a Common Lisp class backed by a protobuf class. SLOT-SPECIFIERS is as in ‘defclass’ with the addition of optional :to-proto and :from-proto fields, which may take protobuf serialization functions, and :skip-equal-p field which causes ‘is-equal-p’ to skip that field. PROTO-FIELDS may hold a list of fields which pass through directly to the backing protobuf class. The :parent option names the field holding the containing protobuf element. The :address-range option holds the logic to calculate an address range for instances of the object.
Update the subseq of SEQUENCE bounded by START and END.
shift-subseq
(function).
Return a copy of SEQUENCE bounded by START and END.
uuid
.
Delete ITEM from OBJECT between START-ADDRESS and END-ADDRESS.
Insert ITEM into OBJECT between START-ADDRESS and END-ADDRESS.
Internal function called by ‘is-equal-p’.
proxy-block
) (right proxy-block
)) ¶data-block
) (right data-block
)) ¶code-block
) (right code-block
)) ¶sym-addr-addr
) (right sym-addr-addr
)) ¶sym-addr-const
) (right sym-addr-const
)) ¶sym-stack-const
) (right sym-stack-const
)) ¶byte-interval
) (right byte-interval
)) ¶edge-label
) (right edge-label
)) ¶number
) (right number
)) ¶symbol
) (right symbol
)) ¶string
) (right string
)) ¶cons
) (right cons
)) ¶hash-table
) (right hash-table
)) ¶digraph
) (right digraph
)) ¶aux-data
)) ¶aux-data
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
proxy-block
)) ¶proxy-block
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
data-block
)) ¶data-block
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
code-block
)) ¶code-block
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
sym-addr-addr
)) ¶sym-addr-addr
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
sym-addr-const
)) ¶sym-addr-const
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
sym-stack-const
)) ¶sym-stack-const
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
byte-interval
)) ¶byte-interval
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
section
)) ¶section
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
symbol
)) ¶symbol
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
edge-label
)) ¶edge-label
)) ¶Backing protobuf object.
Should not need to be manipulated by client code.
Set UUID to NEW in OBJECT’s parent.
proxy-block
)) ¶data-block
)) ¶code-block
)) ¶byte-interval
)) ¶Update the offsets into BYTE-INTERVAL due to saving NEW into START END.
byte-interval
) &optional start end) ¶gtirb-byte-block
) &optional start end) ¶interval
.
integer
0
Objects which may be serialized to/from protobuf.
Proxy-block in a GTIRB IR instance.
Backing protobuf object.
Should not need to be manipulated by client code.
gtirb.proto:proxy-block
(let ((gtirb/gtirb::it (make-instance (quote gtirb.proto:proxy-block)))) (setf (gtirb.proto:uuid gtirb/gtirb::it) (gtirb/utility:new-uuid)) gtirb/gtirb::it)
:proto
Access the top-level IR of this PROXY-BLOCK.
Access the MODULE of this PROXY-BLOCK.
(or null gtirb/gtirb:module)
:module
Symbol(s) appearing in this symbolic expression.
list
:symbols
Jump to: | (
A B C D E F G I M N O P R S U V W |
---|
Jump to: | (
A B C D E F G I M N O P R S U V W |
---|
Jump to: | *
+
A B C G I M O P S U V |
---|
Jump to: | *
+
A B C G I M O P S U V |
---|
Jump to: | A B C D E F G I M P R S U |
---|
Jump to: | A B C D E F G I M P R S U |
---|