Do not output function, file and line index for unknown locations.
authorMilian Wolff <mail@milianw.de>
Mon, 25 Aug 2014 13:24:41 +0000 (15:24 +0200)
committerMilian Wolff <mail@milianw.de>
Mon, 25 Aug 2014 13:39:35 +0000 (15:39 +0200)
The null value is the default anyways and we do not need to
output that information and can thereby decrease the filesize a bit
for debugees with many occasions of missing debug information.

heaptrack_interpret.cpp
heaptrack_print.cpp

index 11f424a..1ec26fa 100644 (file)
@@ -281,9 +281,14 @@ int main(int /*argc*/, char** /*argv*/)
                 return 1;
             }
             const auto ip = data.resolve(instructionPointer);
-            cout << line << ' '
-                 << ip.moduleIndex << ' ' << ip.functionIndex << ' '
-                 << ip.fileIndex << ' ' << ip.line << '\n';
+            cout << line << ' ' << ip.moduleIndex;
+            if (ip.functionIndex || ip.fileIndex) {
+                cout << ' ' << ip.functionIndex;
+                if (ip.fileIndex) {
+                    cout << ' ' << ip.fileIndex << ' ' << ip.line;
+                }
+            }
+            cout << '\n';
         } else {
             cout << line << '\n';
         }
index 08d107a..da34001 100644 (file)
@@ -247,10 +247,6 @@ int main(int argc, char** argv)
             lineIn >> ip.functionIndex;
             lineIn >> ip.fileIndex;
             lineIn >> ip.line;
-            if (lineIn.bad()) {
-                cerr << "failed to parse line: " << line << endl;
-                return 1;
-            }
             data.instructionPointers.push_back(ip);
         } else if (mode == '+') {
             size_t size = 0;