Index: build/linux/dump_signature.py |
diff --git a/build/linux/dump_signature.py b/build/linux/dump_signature.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..779bf85b8e49a5d21f86ba9ddd8d12e8a6446043 |
--- /dev/null |
+++ b/build/linux/dump_signature.py |
@@ -0,0 +1,31 @@ |
+#!/usr/bin/python2.4 |
+# |
+# Copyright (c) 2009 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+# |
+# This generates symbol signatures with the same algorithm as |
+# src/breakpad/linux/minidump_writer.cc@17081 |
+ |
+import sys |
+ |
+if len(sys.argv) != 2: |
+ sys.stderr.write("Error, no filename specified.\n") |
+ sys.exit(1) |
+ |
+bin = open(sys.argv[1]) |
+data = bin.read(4096) |
+if len(data) != 4096: |
+ sys.stderr.write("Error, did not read first page of data.\n"); |
Mark Mentovai
2009/06/12 17:30:10
Don't we want sys.exit(1) here too?
|
+bin.close() |
+ |
+signature = [0] * 16 |
+for i in range(0, 4096): |
+ signature[i % 16] ^= ord(data[i]) |
+ |
+out = '' |
Mark Mentovai
2009/06/12 17:30:10
I have a better recipe for this, and it's endian-n
|
+# Assume we're running on little endian |
+for i in [3, 2, 1, 0, 5, 4, 7, 6, 8, 9, 10, 11, 12, 13, 14, 15]: |
+ out += '%02X' % signature[i] |
+out += '0' |
Mark Mentovai
2009/06/12 17:30:10
I know what the 0 means, but will others?
Put a c
|
+sys.stdout.write(out) |