Allow 'promoting' back to capture 64-bit from 32-bit, in 64-bit install

* A 64-bit install has an x86 subfolder to capture 32-bit programs. If
  a 32-bit program then launches a 64-bit program we need to 'promote'
  back to run the original bitness to capture it.
* It's still not supported to capture 64-bit in general from just a
  32-bit install as the support files aren't included.
This commit is contained in:
baldurk
2016-12-08 18:23:08 +00:00
parent c810a96300
commit 2a4d2451ff
2 changed files with 73 additions and 12 deletions
+4 -4
View File
@@ -542,7 +542,7 @@ struct ReplayCommand : public Command
}
};
struct Cap32For64Command : public Command
struct CapAltBitCommand : public Command
{
virtual void AddOptions(cmdline::parser &parser)
{
@@ -564,7 +564,7 @@ struct Cap32For64Command : public Command
if(rest.size() % 3 != 0)
{
std::cerr << "Invalid generated cap32for64 command rest.size() == " << rest.size() << std::endl;
std::cerr << "Invalid generated capaltbit command rest.size() == " << rest.size() << std::endl;
return 0;
}
@@ -626,7 +626,7 @@ struct Cap32For64Command : public Command
}
else
{
std::cerr << "Invalid generated cap32for64 env '" << rest[i * 3 + 0] << std::endl;
std::cerr << "Invalid generated capaltbit env '" << rest[i * 3 + 0] << std::endl;
RENDERDOC_FreeEnvironmentModificationList(env);
return 0;
}
@@ -678,7 +678,7 @@ int renderdoccmd(std::vector<std::string> &argv)
add_command("inject", new InjectCommand());
add_command("remoteserver", new RemoteServerCommand());
add_command("replay", new ReplayCommand());
add_command("cap32for64", new Cap32For64Command());
add_command("capaltbit", new CapAltBitCommand());
if(argv.size() <= 1)
{