summary refs log tree commit diff
path: root/ripple/minitrace/src/maps_file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ripple/minitrace/src/maps_file.rs')
-rw-r--r--ripple/minitrace/src/maps_file.rs26
1 files changed, 16 insertions, 10 deletions
diff --git a/ripple/minitrace/src/maps_file.rs b/ripple/minitrace/src/maps_file.rs
index 84fc0fb..af35bde 100644
--- a/ripple/minitrace/src/maps_file.rs
+++ b/ripple/minitrace/src/maps_file.rs
@@ -121,16 +121,16 @@ pub(crate) fn parse_mapping_line(line: &str) -> anyhow::Result<Mapping> {
 
 #[derive(Eq, PartialEq)]
 pub(crate) struct Mapping {
-	start: u64,
-	end: u64,
-	perm_read: bool,
-	perm_write: bool,
-	perm_exec: bool,
-	shared: bool,
-	offset: u64,
-	dev: (u32, u32),
-	inode: u64,
-	pathname: String,
+	pub(crate) start: u64,
+	pub(crate) end: u64,
+	pub(crate) perm_read: bool,
+	pub(crate) perm_write: bool,
+	pub(crate) perm_exec: bool,
+	pub(crate) shared: bool,
+	pub(crate) offset: u64,
+	pub(crate) dev: (u32, u32),
+	pub(crate) inode: u64,
+	pub(crate) pathname: String,
 }
 
 impl Debug for Mapping {
@@ -184,3 +184,9 @@ fn golden_mapping() {
 	};
 	assert_eq!(mapping(line).unwrap().1, golden);
 }
+
+// NOTE: this is a surjective mapping, since backslashes are not escaped
+// ie `escape_path("\\012") == escape_path("\n")`
+pub(crate) fn escape_path(path: &str) -> String {
+	path.replace('\n', "\\012")
+}