Relax module list requirements
Some Windows versions have problems with Steamclient.dll and give it a size of -1
This commit is contained in:
parent
7aeabf23b5
commit
ad9db42aa4
@ -743,11 +743,6 @@ class UploadThread: public IThread
|
|||||||
return kPRLocalError;
|
return kPRLocalError;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Minidumps missing a module list are basically useless
|
|
||||||
if (!processState.modules()) {
|
|
||||||
return kPRLocalError;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string os_short = "";
|
std::string os_short = "";
|
||||||
std::string cpu_arch = "";
|
std::string cpu_arch = "";
|
||||||
if (processState.system_info()) {
|
if (processState.system_info()) {
|
||||||
@ -778,7 +773,7 @@ class UploadThread: public IThread
|
|||||||
|
|
||||||
std::map<const google_breakpad::CodeModule *, unsigned int> moduleMap;
|
std::map<const google_breakpad::CodeModule *, unsigned int> moduleMap;
|
||||||
|
|
||||||
unsigned int moduleCount = processState.modules()->module_count();
|
unsigned int moduleCount = processState.modules() ? processState.modules()->module_count() : 0;
|
||||||
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
||||||
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
||||||
moduleMap[module] = moduleIndex;
|
moduleMap[module] = moduleIndex;
|
||||||
@ -886,67 +881,69 @@ class UploadThread: public IThread
|
|||||||
if (log) fprintf(log, "Got a presubmit token from server: %s\n", tokenBuffer);
|
if (log) fprintf(log, "Got a presubmit token from server: %s\n", tokenBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto mainModule = processState.modules()->GetMainModule();
|
if (moduleCount > 0) {
|
||||||
auto executableBaseDir = PathnameStripper_Directory(mainModule->code_file());
|
auto mainModule = processState.modules()->GetMainModule();
|
||||||
InitModuleClassificationMap(executableBaseDir);
|
auto executableBaseDir = PathnameStripper_Directory(mainModule->code_file());
|
||||||
|
InitModuleClassificationMap(executableBaseDir);
|
||||||
|
|
||||||
// 0 = Disabled
|
// 0 = Disabled
|
||||||
// 1 = System Only
|
// 1 = System Only
|
||||||
// 2 = System + Game
|
// 2 = System + Game
|
||||||
// 3 = System + Game + Addons
|
// 3 = System + Game + Addons
|
||||||
const char *symbolSubmitOptionStr = g_pSM->GetCoreConfigValue("MinidumpSymbolUpload");
|
const char *symbolSubmitOptionStr = g_pSM->GetCoreConfigValue("MinidumpSymbolUpload");
|
||||||
int symbolSubmitOption = symbolSubmitOptionStr ? atoi(symbolSubmitOptionStr) : 3;
|
int symbolSubmitOption = symbolSubmitOptionStr ? atoi(symbolSubmitOptionStr) : 3;
|
||||||
|
|
||||||
const char *binarySubmitOption = g_pSM->GetCoreConfigValue("MinidumpBinaryUpload");
|
const char *binarySubmitOption = g_pSM->GetCoreConfigValue("MinidumpBinaryUpload");
|
||||||
bool canBinarySubmit = !binarySubmitOption || (tolower(binarySubmitOption[0]) == 'y' || binarySubmitOption[0] == '1');
|
bool canBinarySubmit = !binarySubmitOption || (tolower(binarySubmitOption[0]) == 'y' || binarySubmitOption[0] == '1');
|
||||||
|
|
||||||
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
||||||
bool submitSymbols = false;
|
bool submitSymbols = false;
|
||||||
bool submitBinary = (response[2 + moduleIndex] == 'U');
|
bool submitBinary = (response[2 + moduleIndex] == 'U');
|
||||||
|
|
||||||
#if defined _LINUX
|
#if defined _LINUX
|
||||||
submitSymbols = (response[2 + moduleIndex] == 'Y');
|
submitSymbols = (response[2 + moduleIndex] == 'Y');
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!submitSymbols && !submitBinary) {
|
if (!submitSymbols && !submitBinary) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
|
||||||
|
|
||||||
auto moduleType = ClassifyModule(module);
|
|
||||||
if (log) fprintf(log, "Classified module %s as %s\n", module->code_file().c_str(), ModuleTypeCode[moduleType]);
|
|
||||||
|
|
||||||
switch (moduleType) {
|
|
||||||
case kMTUnknown:
|
|
||||||
continue;
|
continue;
|
||||||
case kMTSystem:
|
}
|
||||||
if (symbolSubmitOption < 1) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMTGame:
|
|
||||||
if (symbolSubmitOption < 2) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMTAddon:
|
|
||||||
case kMTExtension:
|
|
||||||
if (symbolSubmitOption < 3) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (canBinarySubmit && submitBinary) {
|
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
||||||
UploadModuleFile(module, tokenBuffer);
|
|
||||||
}
|
auto moduleType = ClassifyModule(module);
|
||||||
|
if (log) fprintf(log, "Classified module %s as %s\n", module->code_file().c_str(), ModuleTypeCode[moduleType]);
|
||||||
|
|
||||||
|
switch (moduleType) {
|
||||||
|
case kMTUnknown:
|
||||||
|
continue;
|
||||||
|
case kMTSystem:
|
||||||
|
if (symbolSubmitOption < 1) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kMTGame:
|
||||||
|
if (symbolSubmitOption < 2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case kMTAddon:
|
||||||
|
case kMTExtension:
|
||||||
|
if (symbolSubmitOption < 3) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (canBinarySubmit && submitBinary) {
|
||||||
|
UploadModuleFile(module, tokenBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined _LINUX
|
#if defined _LINUX
|
||||||
if (submitSymbols) {
|
if (submitSymbols) {
|
||||||
UploadSymbolFile(module, tokenBuffer);
|
UploadSymbolFile(module, tokenBuffer);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete[] response;
|
delete[] response;
|
||||||
|
@ -175,11 +175,6 @@ int main(int argc, char *argv[])
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Minidumps missing a module list are basically useless
|
|
||||||
if (!processState.modules()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string os_short = "";
|
std::string os_short = "";
|
||||||
std::string cpu_arch = "";
|
std::string cpu_arch = "";
|
||||||
if (processState.system_info()) {
|
if (processState.system_info()) {
|
||||||
@ -210,7 +205,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
std::map<const CodeModule *, unsigned int> moduleMap;
|
std::map<const CodeModule *, unsigned int> moduleMap;
|
||||||
|
|
||||||
unsigned int moduleCount = processState.modules()->module_count();
|
unsigned int moduleCount = processState.modules() ? processState.modules()->module_count() : 0;
|
||||||
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
for (unsigned int moduleIndex = 0; moduleIndex < moduleCount; ++moduleIndex) {
|
||||||
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
auto module = processState.modules()->GetModuleAtIndex(moduleIndex);
|
||||||
moduleMap[module] = moduleIndex;
|
moduleMap[module] = moduleIndex;
|
||||||
|
Loading…
Reference in New Issue
Block a user