| Index: src/client/linux/microdump_writer/microdump_writer.cc
|
| diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
|
| index 247387e202d660bfee768615eafc2768a9b40f5e..d54d490958a0d96e763d37fef307986710e46c60 100644
|
| --- a/src/client/linux/microdump_writer/microdump_writer.cc
|
| +++ b/src/client/linux/microdump_writer/microdump_writer.cc
|
| @@ -166,8 +166,9 @@ class MicrodumpWriter {
|
| const char kOSId[] = "L";
|
| #endif
|
|
|
| -// We cannot depend on uts.machine. On multiarch devices it always returns the
|
| -// primary arch, not the one that match the executable being run.
|
| +// Dump the runtime architecture. On multiarch devices it might not match the
|
| +// hw architecture (the one returned by uname()), for instance in the case of
|
| +// a 32-bit app running on a aarch64 device.
|
| #if defined(__aarch64__)
|
| const char kArch[] = "arm64";
|
| #elif defined(__ARMEL__)
|
| @@ -189,21 +190,24 @@ class MicrodumpWriter {
|
| LogAppend(" ");
|
| LogAppend(n_cpus);
|
| LogAppend(" ");
|
| +
|
| + // Dump the HW architecture (e.g., armv7l, aarch64).
|
| + struct utsname uts;
|
| + const bool has_uts_info = (uname(&uts) == 0);
|
| + const char* hwArch = has_uts_info ? uts.machine : "unknown_hw_arch";
|
| + LogAppend(hwArch);
|
| + LogAppend(" ");
|
| +
|
| // If the client has attached a build fingerprint to the MinidumpDescriptor
|
| // use that one. Otherwise try to get some basic info from uname().
|
| if (build_fingerprint_) {
|
| LogAppend(build_fingerprint_);
|
| + } else if (has_uts_info) {
|
| + LogAppend(uts.release);
|
| + LogAppend(" ");
|
| + LogAppend(uts.version);
|
| } else {
|
| - struct utsname uts;
|
| - if (uname(&uts) == 0) {
|
| - LogAppend(uts.machine);
|
| - LogAppend(" ");
|
| - LogAppend(uts.release);
|
| - LogAppend(" ");
|
| - LogAppend(uts.version);
|
| - } else {
|
| - LogAppend("no build fingerprint available");
|
| - }
|
| + LogAppend("no build fingerprint available");
|
| }
|
| LogCommitLine();
|
| }
|
|
|