| import lldb | |
| from intelpt_testcase import * | |
| from lldbsuite.test.lldbtest import * | |
| from lldbsuite.test import lldbutil | |
| from lldbsuite.test.decorators import * | |
| class TestTraceDumpInfo(TraceIntelPTTestCaseBase): | |
| def testErrorMessages(self): | |
| # We first check the output when there are no targets | |
| self.expect( | |
| "thread trace dump info", | |
| substrs=[ | |
| "error: invalid target, create a target using the 'target create' command" | |
| ], | |
| error=True, | |
| ) | |
| # We now check the output when there's a non-running target | |
| self.expect( | |
| "target create " | |
| + os.path.join(self.getSourceDir(), "intelpt-trace", "a.out") | |
| ) | |
| self.expect( | |
| "thread trace dump info", | |
| substrs=["error: Command requires a current process."], | |
| error=True, | |
| ) | |
| # Now we check the output when there's a running target without a trace | |
| self.expect("b main") | |
| self.expect("run") | |
| self.expect( | |
| "thread trace dump info", | |
| substrs=["error: process is not being traced"], | |
| error=True, | |
| ) | |
| def testDumpRawTraceSize(self): | |
| self.expect( | |
| "trace load -v " | |
| + os.path.join(self.getSourceDir(), "intelpt-trace", "trace.json"), | |
| substrs=["intel-pt"], | |
| ) | |
| self.expect( | |
| "thread trace dump info", | |
| substrs=[ | |
| """thread #1: tid = 3842849 | |
| Trace technology: intel-pt | |
| Total number of trace items: 28 | |
| Memory usage: | |
| Raw trace size: 4 KiB""", | |
| """ | |
| Events: | |
| Number of individual events: 7 | |
| software disabled tracing: 2 | |
| hardware disabled tracing: 4 | |
| trace synchronization point: 1""", | |
| ], | |
| patterns=[r"Decoding instructions: \d.\d\ds"], | |
| ) | |
| def testDumpRawTraceSizeJSON(self): | |
| self.expect( | |
| "trace load -v " | |
| + os.path.join(self.getSourceDir(), "intelpt-trace", "trace.json"), | |
| substrs=["intel-pt"], | |
| ) | |
| self.expect( | |
| "thread trace dump info --json ", | |
| substrs=[ | |
| """{ | |
| "traceTechnology": "intel-pt", | |
| "threadStats": { | |
| "tid": 3842849, | |
| "traceItemsCount": 28,""", | |
| """ | |
| }, | |
| "events": { | |
| "totalCount": 7, | |
| "individualCounts": { | |
| "software disabled tracing": 2, | |
| "hardware disabled tracing": 4, | |
| "trace synchronization point": 1 | |
| } | |
| }, | |
| "errors": { | |
| "totalCount": 0, | |
| "libiptErrors": {}, | |
| "fatalErrors": 0, | |
| "otherErrors": 0 | |
| } | |
| }, | |
| "globalStats": { | |
| "timingInSeconds": {} | |
| } | |
| }""", | |
| ], | |
| ) |