| Index: runtime/vm/simulator_arm.cc
|
| diff --git a/runtime/vm/simulator_arm.cc b/runtime/vm/simulator_arm.cc
|
| index b65ae800890376851eca09c0d21c08c9edec0eee..76292c0661fc71ef62dcbea7e8fd8a27b8516e1f 100644
|
| --- a/runtime/vm/simulator_arm.cc
|
| +++ b/runtime/vm/simulator_arm.cc
|
| @@ -95,11 +95,11 @@ class SimulatorDebugger {
|
| bool GetFValue(char* desc, float* value);
|
| bool GetDValue(char* desc, double* 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();
|
| @@ -245,9 +245,9 @@ bool SimulatorDebugger::GetDValue(char* desc, double* 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());
|
| @@ -255,7 +255,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();
|
| }
|
| }
|
| @@ -265,7 +265,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());
|
| @@ -273,7 +273,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
|
|
|