Cap GPS resolver probe logging
This commit is contained in:
@@ -178,8 +178,10 @@ constexpr uintptr_t kGpsFilteredCostProviderVtableRva = 0x2AE60F8;
|
|||||||
constexpr uintptr_t kGpsAuxMultiplierRva = 0x040BB00;
|
constexpr uintptr_t kGpsAuxMultiplierRva = 0x040BB00;
|
||||||
constexpr uintptr_t kGpsNodeMultiplierRva = 0x040BB40;
|
constexpr uintptr_t kGpsNodeMultiplierRva = 0x040BB40;
|
||||||
constexpr uintptr_t kGpsCostMultiplierTableRva = 0x3154D28;
|
constexpr uintptr_t kGpsCostMultiplierTableRva = 0x3154D28;
|
||||||
constexpr uint64_t kGpsResolveTraceWindowMs = 5000;
|
constexpr uint64_t kGpsResolveTraceWindowMs = 1200;
|
||||||
constexpr uint32_t kGpsResolveSelectedRetLogLimit = 4096;
|
constexpr uint32_t kGpsResolveSelectedRetLogLimit = 24;
|
||||||
|
constexpr uint32_t kGpsResolveStartupLogLimit = 8;
|
||||||
|
constexpr uint32_t kGpsResolveVerboseDumpLimit = 4;
|
||||||
constexpr std::array<float, 7> kGpsPatchedCostMultipliers = {
|
constexpr std::array<float, 7> kGpsPatchedCostMultipliers = {
|
||||||
12.0f, 7.0f, 2.5f, 0.0f, 3.0f, 2.0f, 1.25f,
|
12.0f, 7.0f, 2.5f, 0.0f, 3.0f, 2.0f, 1.25f,
|
||||||
};
|
};
|
||||||
@@ -4011,7 +4013,7 @@ int32_t DetourGpsResolveHandle(void* aGraph, uint64_t aHandle, void* aOutSegment
|
|||||||
shouldLog = result >= 0 && hasSegment && hasPoint &&
|
shouldLog = result >= 0 && hasSegment && hasPoint &&
|
||||||
((IsSelectedGpsResolveReturnRva(returnRva) && inTraceWindow &&
|
((IsSelectedGpsResolveReturnRva(returnRva) && inTraceWindow &&
|
||||||
returnCallCount < kGpsResolveSelectedRetLogLimit) ||
|
returnCallCount < kGpsResolveSelectedRetLogLimit) ||
|
||||||
callCount < 32);
|
callCount < kGpsResolveStartupLogLimit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldLog)
|
if (shouldLog)
|
||||||
@@ -4044,13 +4046,19 @@ int32_t DetourGpsResolveHandle(void* aGraph, uint64_t aHandle, void* aOutSegment
|
|||||||
AppendPointerWithRva(line, "segment_p30", aux30);
|
AppendPointerWithRva(line, "segment_p30", aux30);
|
||||||
AppendPointerWithRva(line, "segment_p38", aux38);
|
AppendPointerWithRva(line, "segment_p38", aux38);
|
||||||
AppendGpsPointSummary(line, "pointSummary", point);
|
AppendGpsPointSummary(line, "pointSummary", point);
|
||||||
AppendBytesPointer(line, "segment_raw68", segment, 0x68);
|
const auto shouldDumpBytes =
|
||||||
AppendBytesPointer(line, "point_raw14", point, 0x14);
|
callCount < kGpsResolveVerboseDumpLimit || returnCallCount < kGpsResolveVerboseDumpLimit;
|
||||||
AppendBytesPointer(line, "segment_p08_raw30", segmentMeta, 0x30);
|
line << " dump=" << (shouldDumpBytes ? 1 : 0);
|
||||||
AppendBytesPointer(line, "segment_p20_raw40", aux20, 0x40);
|
if (shouldDumpBytes)
|
||||||
AppendBytesPointer(line, "segment_p28_point_raw18", aux28Point, 0x18);
|
{
|
||||||
AppendBytesPointer(line, "segment_p30_raw40", aux30, 0x40);
|
AppendBytesPointer(line, "segment_raw68", segment, 0x68);
|
||||||
AppendBytesPointer(line, "segment_p38_raw40", aux38, 0x40);
|
AppendBytesPointer(line, "point_raw14", point, 0x14);
|
||||||
|
AppendBytesPointer(line, "segment_p08_raw30", segmentMeta, 0x30);
|
||||||
|
AppendBytesPointer(line, "segment_p20_raw40", aux20, 0x40);
|
||||||
|
AppendBytesPointer(line, "segment_p28_point_raw18", aux28Point, 0x18);
|
||||||
|
AppendBytesPointer(line, "segment_p30_raw40", aux30, 0x40);
|
||||||
|
AppendBytesPointer(line, "segment_p38_raw40", aux38, 0x40);
|
||||||
|
}
|
||||||
if (gActiveGpsRouteProducerCall != UINT32_MAX)
|
if (gActiveGpsRouteProducerCall != UINT32_MAX)
|
||||||
{
|
{
|
||||||
line << " routeProducerCall=" << gActiveGpsRouteProducerCall;
|
line << " routeProducerCall=" << gActiveGpsRouteProducerCall;
|
||||||
|
|||||||
Reference in New Issue
Block a user