mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-09 01:29:52 +00:00
Fix jModulesInfo handling for cross-path syntax debugging
We were sending paths with the host path separator, which meant the remote target did not understand our packets correctly. llvm-svn: 291103
This commit is contained in:
parent
f31c9d27a4
commit
763f1c453b
@ -3246,7 +3246,7 @@ GDBRemoteCommunicationClient::GetModulesInfo(
|
||||
JSONObject::SP module_sp = std::make_shared<JSONObject>();
|
||||
module_array_sp->AppendObject(module_sp);
|
||||
module_sp->SetObject(
|
||||
"file", std::make_shared<JSONString>(module_file_spec.GetPath()));
|
||||
"file", std::make_shared<JSONString>(module_file_spec.GetPath(false)));
|
||||
module_sp->SetObject("triple",
|
||||
std::make_shared<JSONString>(triple.getTriple()));
|
||||
}
|
||||
|
@ -199,14 +199,22 @@ TEST_F(GDBRemoteCommunicationClientTest, GetModulesInfo) {
|
||||
|
||||
FileSpec file_specs[] = {
|
||||
FileSpec("/foo/bar.so", false, FileSpec::ePathSyntaxPosix),
|
||||
FileSpec("/foo/baz.so", false, FileSpec::ePathSyntaxPosix)};
|
||||
FileSpec("/foo/baz.so", false, FileSpec::ePathSyntaxPosix),
|
||||
|
||||
// This is a bit dodgy but we currently depend on GetModulesInfo not
|
||||
// performing denormalization. It can go away once the users
|
||||
// (DynamicLoaderPOSIXDYLD, at least) correctly set the path syntax for
|
||||
// the FileSpecs they create.
|
||||
FileSpec("/foo/baw.so", false, FileSpec::ePathSyntaxWindows),
|
||||
};
|
||||
std::future<llvm::Optional<std::vector<ModuleSpec>>> async_result =
|
||||
std::async(std::launch::async,
|
||||
[&] { return client.GetModulesInfo(file_specs, triple); });
|
||||
HandlePacket(
|
||||
server, "jModulesInfo:["
|
||||
R"({"file":"/foo/bar.so","triple":"i386-pc-linux"},)"
|
||||
R"({"file":"/foo/baz.so","triple":"i386-pc-linux"}])",
|
||||
R"({"file":"/foo/baz.so","triple":"i386-pc-linux"},)"
|
||||
R"({"file":"/foo/baw.so","triple":"i386-pc-linux"}])",
|
||||
R"([{"uuid":"404142434445464748494a4b4c4d4e4f","triple":"i386-pc-linux",)"
|
||||
R"("file_path":"/foo/bar.so","file_offset":0,"file_size":1234}]])");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user