Files
objdiff/objdiff-core/protos/proto_descriptor.bin
T

1710 lines
18 KiB
Plaintext
Raw Normal View History

2024-08-20 21:40:32 -06:00
àG
diff.proto objdiff.diff"‡
DiffResult1
left ( 2.objdiff.diff.DiffObjectHRleftˆ3
right ( 2.objdiff.diff.DiffObjectHRrightˆB
_leftB
_right"w
DiffObject5
sections ( 2.objdiff.diff.DiffSectionRsections2
symbols ( 2.objdiff.diff.DiffSymbolRsymbols"»
DiffSection
name ( Rname1
kind (2.objdiff.diff.DiffSectionKindRkind
size (Rsize
address (Raddress(
match_percent (HR matchPercentˆ:
data_diff ( 2.objdiff.diff.DiffDataSegmentRdataDiff?
reloc_diff ( 2 .objdiff.diff.DiffDataRelocationR relocDiffB
_match_percent"î
DiffSymbol
name ( Rname*
demangled_name ( HR
demangledNameˆ
address (Raddress
size (Rsize3
flags ( 2.objdiff.diff.DiffSymbolFlagsRflags0
kind
(2.objdiff.diff.DiffSymbolKindRkind(
target_symbol (
HR targetSymbolˆ(
match_percent (HR matchPercentˆD
instructions ( 2 .objdiff.diff.DiffInstructionRowR instructions:
data_diff ( 2.objdiff.diff.DiffDataSegmentRdataDiffB
_demangled_nameB
_target_symbolB
_match_percent"Â
DiffSymbolFlags
global (Rglobal
local (Rlocal
weak (Rweak
common (Rcommon
hidden (Rhidden
ignored (Rignored#
size_inferred (R sizeInferred"à
DiffInstructionRow3
diff_kind (2.objdiff.diff.DiffKindRdiffKindD
instruction ( 2.objdiff.diff.DiffInstructionHR instructionˆ?
arg_diff ( 2$.objdiff.diff.DiffInstructionArgDiffRargDiffB
_instruction"Ô
DiffInstruction
address (Raddress
size (
Rsize
formatted ( R formatted7
parts ( 2!.objdiff.diff.DiffInstructionPartRpartsA
relocation ( 2.objdiff.diff.DiffRelocationHR
relocationˆ$
branch_dest (HR
branchDestˆ$
line_number (
HR
lineNumberˆB
_relocationB
_branch_destB
_line_number"¿
DiffInstructionPart
basic ( HRbasic2
opcode ( 2.objdiff.diff.DiffOpcodeHRopcode4
arg ( 2 .objdiff.diff.DiffInstructionArgHRarg
separator (HR separatorB
part"@
DiffOpcode
mnemonic ( Rmnemonic
opcode (
Ropcode"¨
DiffInstructionArg
signed (HRsigned
unsigned (HRunsigned
opaque ( HRopaque
reloc (HRreloc!
branch_dest (HR
branchDestB
arg"~
DiffRelocation
type (
Rtype
type_name ( RtypeName#
target_symbol (
R targetSymbol
addend (Raddend"K
DiffInstructionArgDiff"
diff_index (
HR diffIndexˆB
_diff_index"e
DiffDataSegment*
kind (2.objdiff.diff.DiffKindRkind
data ( Rdata
size (Rsize"¦
DiffDataRelocation<
relocation ( 2.objdiff.diff.DiffRelocationR
relocation*
kind (2.objdiff.diff.DiffKindRkind
start (Rstart
end (Rend*o
DiffSectionKind
SECTION_UNKNOWN
SECTION_CODE
SECTION_DATA
SECTION_BSS
SECTION_COMMON*`
DiffSymbolKind
SYMBOL_UNKNOWN
SYMBOL_FUNCTION
SYMBOL_OBJECT
SYMBOL_SECTION*z
DiffKind
DIFF_NONE
DIFF_REPLACE
DIFF_DELETE
DIFF_INSERT
DIFF_OP_MISMATCH
DIFF_ARG_MISMATCHJ¯/
ª

 


J
> Top-level diff result containing left and right object diffs



 




 


7
 + Diff information for a single object file
 
 $
 
 
 
 "#

"







!
,
 Diff information for a section















 

#

 

!"
)

 
$
'(
-

 
(
+,
!













 
 
 
*
$2 Symbol with diff information
$
%
%
%
%
&%
&
& 
&
&#$
'
'
' 
'
(
(
(
(
)
)
)
)
*
*
*
*
Y
,$L The symbol index in the _other_ object that this symbol was diffed against
,
, 
,
,"#
-#
-
- 
-
-!"
7
//* Instruction diff rows (for code symbols)
/
/ 
/*
/-.
+
 1) Data diff (for data symbols)
 1
 1 
 1$
 1'(
49
4
5
5
5
6
6
6
7
7
7
8
8
8

<D Symbol flags
<
=
=
=
=
>
>
>
>
?
?
?
?
@
@
@
@
A
A
A
A
B
B
B
B
C
C
C
C
+
GK A single instruction diff row
G
H
H
H 
H
I+
I
I 
I&
I)*
J/
J
J !
J"*
J-.
,
N[ Parsed instruction information
N
O
O
O 
O
P
P
P
P
+
R Formatted instruction string
R
R 
R
*
T) Formatted instruction parts
T
T 
T$
T'(
2
V)% Relocation information (if present)
V
V 
V$
V'(
)
X" Branch destination address
X
X 
X
X !
.
Z"! Source line number (if present)
Z
Z 
Z
Z !
!
^i An instruction part
^
_h
_
9
a, Basic text (whitespace, punctuation, etc.)
a
a 
a

c Opcode/mnemonic
c
c
c

e
Argument
e
e
e
2
g% Separator between arguments (comma)
g
g 
g
kp
k

m Mnemonic string
m
m 
m

o Base opcode ID
o
o 
o
&
 s An instruction argument
 s
 t
 t
%
 v Signed immediate value
 v
 v 
 v
'
 x Unsigned immediate value
 x
 x 
 x
9
 z, Opaque string value (register names, etc.)
 z
 z 
 z

 | Relocation
 |
 | 
 |
)
 ~ Branch destination address
 ~
 ~ 
 ~
&

ƒˆ Relocation information

ƒ













 







 










)
  Argument diff information
 
o
 Ž!a If set, this argument differs from the other side.
The value is a rotating index for coloring.
 Ž
 Ž 
 Ž
 Ž
3
% Diff kind for instructions and data
















˜
˜
˜
!
 œ¡ Data diff segment
 œ
 
 
  
 
 ž
 ž
 ž
 ž
;
  - Size may be larger than data length for BSS
  
  
  
$

¤ª Data relocation diff

¤

¥

¥

¥

¥

2025-03-08 14:39:15 -07:00
¦

¦

¦ 
2024-08-20 21:40:32 -06:00

¦
4

¨& Address range this relocation covers

¨

¨ 

¨

©
2025-03-08 14:39:15 -07:00

©

©
2024-08-20 21:40:32 -06:00

©bproto3
†2
report.protoobjdiff.report"Ê
Report4
measures ( 2.objdiff.report.MeasuresRmeasures0
units ( 2.objdiff.report.ReportUnitRunits
2024-08-20 21:40:32 -06:00
version (
Rversion>
categories ( 2.objdiff.report.ReportCategoryR
categories"®
Measures.
fuzzy_match_percent (RfuzzyMatchPercent
total_code (R totalCode!
2024-08-20 21:40:32 -06:00
matched_code (R matchedCode0
matched_code_percent (RmatchedCodePercent
total_data (R totalData!
matched_data (R matchedData0
matched_data_percent (RmatchedDataPercent'
2024-08-20 21:40:32 -06:00
total_functions (
RtotalFunctions+
matched_functions (
RmatchedFunctions:
matched_functions_percent
(RmatchedFunctionsPercent#
complete_code (R completeCode2
complete_code_percent (RcompleteCodePercent#
2024-08-20 21:40:32 -06:00
complete_data
(R completeData2
complete_data_percent (RcompleteDataPercent
total_units (
R
totalUnits%
2024-08-20 21:40:32 -06:00
complete_units (
R
completeUnits"j
ReportCategory
2025-03-08 14:39:15 -07:00
id ( Rid
name ( Rname4
2024-08-20 21:40:32 -06:00
measures ( 2.objdiff.report.MeasuresRmeasures"š
ReportUnit
2025-03-08 14:39:15 -07:00
name ( Rname4
measures ( 2.objdiff.report.MeasuresRmeasures6
sections ( 2.objdiff.report.ReportItemRsections8
2024-08-20 21:40:32 -06:00
functions ( 2.objdiff.report.ReportItemR functionsC
metadata ( 2".objdiff.report.ReportUnitMetadataHRmetadataˆB
2025-03-08 14:39:15 -07:00
_metadata"Î
2024-08-20 21:40:32 -06:00
ReportUnitMetadata
complete (HRcompleteˆ$
2025-03-08 14:39:15 -07:00
module_name ( HR
2024-08-20 21:40:32 -06:00
moduleNameˆ
2025-03-08 14:39:15 -07:00
module_id (
HRmoduleIdˆ$
source_path ( HR
sourcePathˆ/
2024-08-20 21:40:32 -06:00
progress_categories ( RprogressCategories*
2025-03-08 14:39:15 -07:00
auto_generated (HR
autoGeneratedˆB
_completeB
_module_nameB
_module_idB
_source_pathB
_auto_generated"á
ReportItem
2024-08-20 21:40:32 -06:00
name ( Rname
size (Rsize.
fuzzy_match_percent (RfuzzyMatchPercentC
metadata ( 2".objdiff.report.ReportItemMetadataHRmetadataˆ
2025-03-08 14:39:15 -07:00
address (HRaddressˆB
2024-08-20 21:40:32 -06:00
_metadataB
2025-03-08 14:39:15 -07:00
_address"•
2025-03-08 14:39:15 -07:00
ReportItemMetadata*
demangled_name ( HR
demangledNameˆ,
2025-03-08 14:39:15 -07:00
virtual_address (HRvirtualAddressˆB
_demangled_nameB
_virtual_addressJ‰"
2025-03-08 14:39:15 -07:00
o

2025-03-08 14:39:15 -07:00
 

2025-03-08 14:39:15 -07:00

%
 Project progress report

$
 Overall progress info

 

'
   Units within this report
 
 
 
 

  Report version
 
 
 
"

) Progress categories





$

'(
0
2$ Progress info for a report or unit

T
 G Overall match percent, including partially matched functions and data



*
 Total size of code in bytes

 

/
" Fully matched code size in bytes

 

)
! Fully matched code percent



*
 Total size of data in bytes

 

/
" Fully matched data size in bytes

 

)
! Fully matched data percent



(
! Total number of functions
!
! 
!
&
# Fully matched functions
#
# 
#
.
 %'! Fully matched functions percent
 %
 %!
 %$&
9

', Completed (or "linked") code size in bytes

'

' 

'
3
 )#& Completed (or "linked") code percent
 )
 )
 ) "
9
 +, Completed (or "linked") data size in bytes
 +
 + 
2024-08-20 21:40:32 -06:00
 +
3

2024-08-20 21:40:32 -06:00
-#& Completed (or "linked") data percent
2024-08-20 21:40:32 -06:00

-

2024-08-20 21:40:32 -06:00
-

- "
2024-08-20 21:40:32 -06:00
$
/ Total number of units
2024-08-20 21:40:32 -06:00
/
2024-08-20 21:40:32 -06:00
/ 
2024-08-20 21:40:32 -06:00
/
,
1 Completed (or "linked") units
2024-08-20 21:40:32 -06:00
1
2024-08-20 21:40:32 -06:00
1 
2024-08-20 21:40:32 -06:00
1
4;
2024-08-20 21:40:32 -06:00
4
2024-08-20 21:40:32 -06:00
%
6 The ID of the category
2024-08-20 21:40:32 -06:00
6
2024-08-20 21:40:32 -06:00
6
6
'
8 The name of the category
8
8
8
.
2024-08-20 21:40:32 -06:00
:! Progress info for this category
2024-08-20 21:40:32 -06:00
:
2024-08-20 21:40:32 -06:00
: 
2024-08-20 21:40:32 -06:00
:
?
2024-08-20 21:40:32 -06:00
>I3 A unit of the report (usually a translation unit)
>
#
@ The name of the unit
@
@
@
*
B Progress info for this unit
B
B 
B
(
D# Sections within this unit
D
D 
D
D!"
)
F$ Functions within this unit
F
F 
2024-08-20 21:40:32 -06:00
F
F"#
+
H+ Extra metadata for this unit
H
H 
H&
H)*
'
LY Extra metadata for a unit
L
D
N7 Whether this unit is marked as complete (or "linked")
N
N 
N
N
:
P"- The name of the module this unit belongs to
P
P 
P
P !
8
R + The ID of the module this unit belongs to
R
R 
R
R
7
T"* The path to the source file of this unit
T
T 
T
T !
0
V*# Progress categories for this unit
V
V 
V%
V()
O
X#B Whether this unit is automatically generated (not user-provided)
X
X 
X
X!"
1
\g% A section or function within a unit
\
#
^ The name of the item
^
^
^
,
` The size of the item in bytes
`
`
`
6
b ) The overall match percent for this item
b
2025-03-08 14:39:15 -07:00
b
b
+
d+ Extra metadata for this item
d
d 
d&
d)*
<
f/ Address of the item (section-relative offset)
f
f 
f
f
(
jo Extra metadata for an item
j
1
l%$ The demangled name of the function
l
2025-03-08 14:39:15 -07:00
l 
l
2025-03-08 14:39:15 -07:00
l#$
2025-03-08 14:39:15 -07:00
=
n&0 The virtual address of the function or section
2025-03-08 14:39:15 -07:00
n
2025-03-08 14:39:15 -07:00
2025-03-08 14:39:15 -07:00
n 
2025-03-08 14:39:15 -07:00
n!
n$%bproto3
2025-03-08 14:39:15 -07:00

2025-03-08 14:39:15 -07:00
changes.protoobjdiff.report report.proto"b
ChangesInput*
2025-03-08 14:39:15 -07:00
from ( 2.objdiff.report.ReportRfrom&
to ( 2.objdiff.report.ReportRto"“
2025-03-08 14:39:15 -07:00
Changes,
from ( 2.objdiff.report.MeasuresRfrom(
to ( 2.objdiff.report.MeasuresRto0
units ( 2.objdiff.report.ChangeUnitRunits"Ö
2025-03-08 14:39:15 -07:00
ChangeUnit
2025-03-08 14:39:15 -07:00
name ( Rname1
from ( 2.objdiff.report.MeasuresHRfromˆ-
to ( 2.objdiff.report.MeasuresHRtoˆ6
2025-03-08 14:39:15 -07:00
sections ( 2.objdiff.report.ChangeItemRsections8
functions ( 2.objdiff.report.ChangeItemR functionsC
metadata ( 2".objdiff.report.ReportUnitMetadataHRmetadataˆB
2025-03-08 14:39:15 -07:00
_fromB
_toB
2025-03-08 14:39:15 -07:00
_metadata"ð
2025-03-08 14:39:15 -07:00
ChangeItem
name ( Rname7
from ( 2.objdiff.report.ChangeItemInfoHRfromˆ3
2025-03-08 14:39:15 -07:00
to ( 2.objdiff.report.ChangeItemInfoHRtoˆC
metadata ( 2".objdiff.report.ReportItemMetadataHRmetadataˆB
_fromB
2025-03-08 14:39:15 -07:00
_toB
_metadata"T
2025-03-08 14:39:15 -07:00
ChangeItemInfo.
fuzzy_match_percent (RfuzzyMatchPercent
2025-03-08 14:39:15 -07:00
size (RsizeJÃ
:

2025-03-08 14:39:15 -07:00
 

2025-03-08 14:39:15 -07:00


2025-03-08 14:39:15 -07:00
?
 3 A pair of reports to compare and generate changes
2025-03-08 14:39:15 -07:00

2025-03-08 14:39:15 -07:00
"
  The previous report
 

 
!
  The current report
 

 
)
 Changes between two reports

8
+ The progress info for the previous report

 

7
* The progress info for the current report
2025-03-08 14:39:15 -07:00

2025-03-08 14:39:15 -07:00

2025-03-08 14:39:15 -07:00

!
  Units that changed

2025-03-08 14:39:15 -07:00
2025-03-08 14:39:15 -07:00
 

2025-03-08 14:39:15 -07:00


& A changed unit

#
2025-03-08 14:39:15 -07:00
 The name of the unit
2025-03-08 14:39:15 -07:00



:
- The previous progress info (omitted if new)

 


=
0 The current progress info (omitted if removed)

 


$
!# Sections that changed
!
! 
!
!!"
%
#$ Functions that changed
#
# 
#
#"#
+
%+ Extra metadata for this unit
%
% 
%&
%)*
+
)2 A changed section or function
)
#
+ The name of the item
2025-03-08 14:39:15 -07:00
2025-03-08 14:39:15 -07:00
+
+
+
: