summaryrefslogtreecommitdiff
path: root/contrib/winedbg-procmap
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2018-10-18 21:37:02 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2018-10-18 21:37:02 +0300
commit2efc087cd4f70c07523b82941259a5d2597b4460 (patch)
tree46d1ba26e158cc5a04ae857d2976a694732c47a6 /contrib/winedbg-procmap
parentfcadd18b07e55f4a6d21f9f378de9ded25be7e67 (diff)
Add some tools
Diffstat (limited to 'contrib/winedbg-procmap')
-rwxr-xr-xcontrib/winedbg-procmap18
1 files changed, 18 insertions, 0 deletions
diff --git a/contrib/winedbg-procmap b/contrib/winedbg-procmap
new file mode 100755
index 0000000..3922150
--- /dev/null
+++ b/contrib/winedbg-procmap
@@ -0,0 +1,18 @@
+#!/bin/sh
+# usage: winedbg-procmap wpid
+# Convert winedbg's share and map information into /proc/<pid>/maps compatible format
+# NOTE: since there's no map offsets you may need to use the brute-map.bash tool as well
+
+tmpdir="$(mktemp -d)"
+trap 'rm -rf "$tmpdir"' EXIT
+winedbg-share "$1" > "$tmpdir/share"
+winedbg-map "$1" > "$tmpdir/map"
+
+awk '{print substr($2, 1, length($2)-1); print $3; print $5}' < "$tmpdir/share" |\
+while {
+ read -r start
+ read -r end
+ read -r name
+}; do
+ awk '(strtonum(0x'"$start"') <= strtonum("0x"$1) && strtonum(0x'"$end"') >= strtonum("0x"$2)) { printf "%s-%s rwxp 00000000 00:00 0 %s\n", $1, $2, "'"$name"'" }' < "$tmpdir/map"
+done