| Index: runtime/vm/simulator_arm64.cc
|
| diff --git a/runtime/vm/simulator_arm64.cc b/runtime/vm/simulator_arm64.cc
|
| index e0df11546be4f5d119074b5d8042f3368973bee6..8ab84559953b0b609636d15d015fcc2ca4c29218 100644
|
| --- a/runtime/vm/simulator_arm64.cc
|
| +++ b/runtime/vm/simulator_arm64.cc
|
| @@ -95,11 +95,11 @@ class SimulatorDebugger {
|
| bool GetDValue(char* desc, uint64_t* value);
|
| bool GetQValue(char* desc, simd_value_t* value);
|
|
|
| - static intptr_t GetApproximateTokenIndex(const Code& code, uword pc);
|
| + static TokenPosition GetApproximateTokenIndex(const Code& code, uword pc);
|
|
|
| static void PrintDartFrame(uword pc, uword fp, uword sp,
|
| const Function& function,
|
| - intptr_t token_pos,
|
| + TokenPosition token_pos,
|
| bool is_optimized,
|
| bool is_inlined);
|
| void PrintBacktrace();
|
| @@ -263,9 +263,9 @@ bool SimulatorDebugger::GetQValue(char* desc, simd_value_t* value) {
|
| }
|
|
|
|
|
| -intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code,
|
| - uword pc) {
|
| - intptr_t token_pos = -1;
|
| +TokenPosition SimulatorDebugger::GetApproximateTokenIndex(const Code& code,
|
| + uword pc) {
|
| + TokenPosition token_pos = TokenPosition::kNoSource;
|
| uword pc_offset = pc - code.EntryPoint();
|
| const PcDescriptors& descriptors =
|
| PcDescriptors::Handle(code.pc_descriptors());
|
| @@ -273,7 +273,7 @@ intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code,
|
| while (iter.MoveNext()) {
|
| if (iter.PcOffset() == pc_offset) {
|
| return iter.TokenPos();
|
| - } else if ((token_pos <= 0) && (iter.PcOffset() > pc_offset)) {
|
| + } else if (!token_pos.IsReal() && (iter.PcOffset() > pc_offset)) {
|
| token_pos = iter.TokenPos();
|
| }
|
| }
|
| @@ -283,7 +283,7 @@ intptr_t SimulatorDebugger::GetApproximateTokenIndex(const Code& code,
|
|
|
| void SimulatorDebugger::PrintDartFrame(uword pc, uword fp, uword sp,
|
| const Function& function,
|
| - intptr_t token_pos,
|
| + TokenPosition token_pos,
|
| bool is_optimized,
|
| bool is_inlined) {
|
| const Script& script = Script::Handle(function.script());
|
| @@ -291,7 +291,7 @@ void SimulatorDebugger::PrintDartFrame(uword pc, uword fp, uword sp,
|
| const String& url = String::Handle(script.url());
|
| intptr_t line = -1;
|
| intptr_t column = -1;
|
| - if (token_pos >= 0) {
|
| + if (token_pos.IsReal()) {
|
| script.GetTokenLocation(token_pos, &line, &column);
|
| }
|
| OS::Print("pc=0x%" Px " fp=0x%" Px " sp=0x%" Px " %s%s (%s:%" Pd
|
|
|