Browse Source
Merge pull request #9138 from liamwhite/hbl-stacktrace
arm_interface: curb infinite recursion in stacktrace generation
pull/15/merge
liamwhite
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
2 additions and
2 deletions
-
src/core/arm/dynarmic/arm_dynarmic_32.cpp
-
src/core/arm/dynarmic/arm_dynarmic_64.cpp
|
|
|
@ -450,7 +450,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Dynarmic_32::GetBacktrace(Core::S |
|
|
|
// Frame records are two words long:
|
|
|
|
// fp+0 : pointer to previous frame record
|
|
|
|
// fp+4 : value of lr for frame
|
|
|
|
while (true) { |
|
|
|
for (size_t i = 0; i < 256; i++) { |
|
|
|
out.push_back({"", 0, lr, 0, ""}); |
|
|
|
if (!fp || (fp % 4 != 0) || !memory.IsValidVirtualAddressRange(fp, 8)) { |
|
|
|
break; |
|
|
|
|
|
|
|
@ -517,7 +517,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Dynarmic_64::GetBacktrace(Core::S |
|
|
|
// Frame records are two words long:
|
|
|
|
// fp+0 : pointer to previous frame record
|
|
|
|
// fp+8 : value of lr for frame
|
|
|
|
while (true) { |
|
|
|
for (size_t i = 0; i < 256; i++) { |
|
|
|
out.push_back({"", 0, lr, 0, ""}); |
|
|
|
if (!fp || (fp % 4 != 0) || !memory.IsValidVirtualAddressRange(fp, 16)) { |
|
|
|
break; |
|
|
|
|