diff options
| author | Rusty Wagner <rusty@vector35.com> | 2016-07-12 17:05:51 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2016-07-12 17:05:51 -0400 |
| commit | c3e5c23d9f71fbb4020fe4f71a01b10734d93946 (patch) | |
| tree | 5171c14f1211261ec1b6cdb64cef9e153c28c2f0 | |
| parent | c9612b7373f3322b90047cb4612b2cdfbba7a656 (diff) | |
Add token and line types for function headers in linear view
| -rw-r--r-- | binaryninjacore.h | 12 | ||||
| -rw-r--r-- | binaryview.cpp | 2 | ||||
| -rw-r--r-- | python/__init__.py | 5 |
3 files changed, 16 insertions, 3 deletions
diff --git a/binaryninjacore.h b/binaryninjacore.h index 0f88972d..223b9fac 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -159,6 +159,11 @@ extern "C" FloatingPointToken = 8, AnnotationToken = 9, CodeRelativeAddressToken = 10, + VariableTypeToken = 11, + FunctionReturnTypeToken = 12, + FunctionAttributeToken = 13, + ArgumentTypeToken = 14, + ArgumentNameToken = 15, // The following are output by the analysis system automatically, these should // not be used directly by the architecture plugins @@ -171,12 +176,17 @@ extern "C" enum BNLinearDisassemblyLineType { + BlankLineType, CodeDisassemblyLineType, DataVariableLineType, HexDumpLineType, FunctionHeaderLineType, + FunctionHeaderStartLineType, + FunctionHeaderEndLineType, FunctionContinuationLineType, - StackVariableLineType + StackVariableLineType, + StackVariableListEndLineType, + FunctionEndLineType }; enum BNSymbolType diff --git a/binaryview.cpp b/binaryview.cpp index ee01d122..864b4687 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -1166,6 +1166,7 @@ vector<LinearDisassemblyLine> BinaryView::GetPreviousLinearDisassemblyLines(Line for (size_t i = 0; i < count; i++) { LinearDisassemblyLine line; + line.type = lines[i].type; line.function = lines[i].function ? new Function(BNNewFunctionReference(lines[i].function)) : nullptr; line.block = lines[i].block ? new BasicBlock(BNNewBasicBlockReference(lines[i].block)) : nullptr; line.lineOffset = lines[i].lineOffset; @@ -1206,6 +1207,7 @@ vector<LinearDisassemblyLine> BinaryView::GetNextLinearDisassemblyLines(LinearDi for (size_t i = 0; i < count; i++) { LinearDisassemblyLine line; + line.type = lines[i].type; line.function = lines[i].function ? new Function(BNNewFunctionReference(lines[i].function)) : nullptr; line.block = lines[i].block ? new BasicBlock(BNNewBasicBlockReference(lines[i].block)) : nullptr; line.lineOffset = lines[i].lineOffset; diff --git a/python/__init__.py b/python/__init__.py index 5d6be5ba..f2be8758 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -683,7 +683,8 @@ class LinearDisassemblyPosition(object): self.address = addr class LinearDisassemblyLine(object): - def __init__(self, func, block, line_offset, contents): + def __init__(self, line_type, func, block, line_offset, contents): + self.type = line_type self.function = func self.block = block self.line_offset = line_offset @@ -1604,7 +1605,7 @@ class BinaryView(object): value = lines[i].contents.tokens[j].value tokens.append(InstructionTextToken(token_type, text, value)) contents = DisassemblyTextLine(addr, tokens) - result.append(LinearDisassemblyLine(func, block, lines[i].lineOffset, contents)) + result.append(LinearDisassemblyLine(lines[i].type, func, block, lines[i].lineOffset, contents)) func = None block = None |
