Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(234)

Unified Diff: tests/untrusted_minidump/minidump_test.c

Issue 14757008: Minidumper: Get the nexe's build ID from PT_NOTE when available (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client
Patch Set: Comment Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/untrusted/minidump_generator/nacl.scons ('k') | tests/untrusted_minidump/nacl.scons » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/untrusted_minidump/minidump_test.c
diff --git a/tests/untrusted_minidump/minidump_test.c b/tests/untrusted_minidump/minidump_test.c
index 466bba806ec4abef31c7436f599312fe3db472e6..3ac184ff803513317a9efb86253665e02df0d5b9 100644
--- a/tests/untrusted_minidump/minidump_test.c
+++ b/tests/untrusted_minidump/minidump_test.c
@@ -9,11 +9,19 @@
#include <string.h>
#include "native_client/src/include/nacl/nacl_minidump.h"
+#include "native_client/src/untrusted/minidump_generator/build_id.h"
const char *g_minidump_filename;
+/* TODO(mseaborn): Make build IDs work in the other toolchains. */
+#if defined(__arm__)
+# define BUILD_ID_WORKS 1
+#else
+# define BUILD_ID_WORKS 0
+#endif
+
static void crash_callback(const void *minidump_data, size_t size) {
assert(size != 0);
FILE *fp = fopen(g_minidump_filename, "wb");
@@ -47,16 +55,21 @@ int main(int argc, char **argv) {
assert(argc == 2);
g_minidump_filename = argv[1];
- /*
- * TODO(mseaborn): Extract the real build ID from the nexe at run
- * time. This will require linker support.
- */
- uint8_t dummy_build_id[NACL_MINIDUMP_BUILD_ID_SIZE];
- memset(dummy_build_id, 0x12, sizeof(dummy_build_id));
+ const char *id_data;
+ size_t id_size;
+ int got_build_id = nacl_get_build_id(&id_data, &id_size);
+ if (BUILD_ID_WORKS) {
+ assert(got_build_id);
+ assert(id_data != NULL);
+ assert(id_size == 20); /* ld uses SHA1 hash by default. */
+ } else {
+ uint8_t dummy_build_id[NACL_MINIDUMP_BUILD_ID_SIZE];
+ memset(dummy_build_id, 0x12, sizeof(dummy_build_id));
+ nacl_minidump_set_module_build_id(dummy_build_id);
+ }
nacl_minidump_set_callback(crash_callback);
nacl_minidump_set_module_name("minidump_test.nexe");
- nacl_minidump_set_module_build_id(dummy_build_id);
nacl_minidump_register_crash_handler();
/* Cause crash. */
« no previous file with comments | « src/untrusted/minidump_generator/nacl.scons ('k') | tests/untrusted_minidump/nacl.scons » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698