Chromium Code Reviews| 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"); |
|
mmandlis
2015/08/13 16:31:24
could you, please, add tests for this code?
Primiano Tucci (use gerrit)
2015/08/14 11:49:32
Done.
|
| } |
| LogCommitLine(); |
| } |