How can I export/extract log from perfetto trace file? - perfetto

I use perfetto to capture a trace on android device. and pull it to my computer.
I can found out the log after open on ui.perfetto. And the log is shown on android log column. But it's too hard to search.
Since perfetto save all its data including log in its database. Can I extract the log by some way?

Related

How does Playwright tracing file compare to HAR file?

Playwright lets you record HAR, but there's also context.tracing.start. The latter also lets you capture screenshots to the resulting ZIP, but HAR file seems to be better supported outside of Playwright. So what is the difference, are trace files basically HAR files with screenshots, or is there any info missing that would be found in a HAR?
Playwright Tracing enables you to see screenshots, DOM Snapshots, console logs, Playwright method calls etc. These can be viewed using the Playwright trace viewer.
HAR is a file specification which supports only network requests, these can be viewed e.g. in Chrome DevTools.
See here for more information about the trace viewer: https://playwright.dev/docs/next/trace-viewer

TraceView able to capture logs occurring during driver installation, but shown as Unknown

I am developing a UMDF driver, and I am able to use its PDB file to confirm events/function calls during its lifetime. However, I am also able to capture events prior to its DriverEntry function. This events have become a concern for me, because I suspect that they alter some values initialized by the driver, thereby causing issues. I would like to know more about these events, but information on TraceView shows them as 'Unknown' as shown below:
Is there a way to capture these trace logs better? It seems like the driver pdb does not contain information for these logs to show up correctly.
EDIT: I extracted TMF files from my PDB file using tracepdb, and it seems like I do not have a TMF file that corresponds to the message GUIDs that are marked "No format information found". Could it be that these trace messages are from external entities, and not coming from the driver?
Fortunately, we have the complete list of PDB files that have been released. We found the a matching trace file after looking at each one of these files, and therefore got the information we wanted.

How to add different loggers (output destination like files and Crashlytics) for logs created by oslog?

Right now if I change the path of the stddr then my logs won't be going to the console anymore and they would only be going to the log files.
I'm wondering if there is a simple way that I can have them both?
Also is there anyway that I can pass logs generated by OSLog to Crashlytics?
You can only do such if you have a wrapper that manages sending logs to oslog and other loggers. Because anything that writes to "system logs" ie to the apple logging layer is where storage is generally opaque to you: os_log, NSLog, etc.
You could create a class which not only writes to os_log, but also to a local text file in your documents directory. That way, you can control what's logged to disk, and it's in a format and directory that's readable to you which you control. You could allow users to airdrop the file, have it readable via iTunes/USB, or email.
Also don't forget to wrap your own logging layer in a background thread/process/task to help with that so it doesn't block the core performance of your app.

Core Animation in Instruments file can't open and No Data

I hope someone enlightens me with this:
After saving a trace file (example: filename.trace) and send it via email, how come the recipient couldn't open the file?
So, I decided to compress the trace file (example: filename.trace.zip) and send it again via email, the recipient was finally able to open the file, but he can only see the Trace template I used, NO DATA FOUND (no spiky stuff). (Same thing happens with putting the trace file in dropbox and send the link.)
Btw, I'm using Core Animation Trace Template (that might have something to do with it).
Some suggestions (I have no experience with this particular file):
did you properly close the file? its possible what you are sending is a file that is not itself complete
in the past, I set some flag in the app plist that let me share files with iTunes. You could try to copy the file to the shared location (Documents folder? not sure now) at the same time you email the file (and maybe email the new file not the original), and see if the one you grab from iTunes opens, and is different from the one that gets emailed
In the end, you need to determine if what you have on the file system is byte for byte what ends up getting received in email, and if the copied file from iTunes opens. Once you find this out, if the problem is not obvious, then update your question. Good luck.

Installing applications OTA

I have a system set up to download jad files on users' Blackberries, but it only works intermittently, and seemingly randomly. If the user clicks on the link within their BlackBerry browser, 95% of the time on the first try an error message will pop up saying there was an HTTP 500 error (which our server never returns).
Viewing the details of this message within the blackberry browser, it says nothing but java.lang.nullpointerexception which, again, could not have come from our server (running apache/php).
However, if the user clicks on the link a few more times, or navigates away and goes back to that page, it suddenly works. No change on the server, it just shows the application install screen. Unfortunately, this doesn't always work; sometimes the error 500 just keeps showing up.
The link is rather long (containing an sha hash as a token as part of the URL), but I would think that a long URL would either always be broken or always work, not work intermittently.
The link uses a php script to download the jad and cod files. Linking to the files directly rather than using the script seems to work more often (I haven't determined if that also ever has an error 500 or not), but I can't find any issues with the headers. The content type is set correctly and, like I said, if the headers were an issue, I'd think it would either always work or always break.
Any clues?
You may be able to shed some light on the problem by looking at the event logs, which you can get using JavaLoader:
javaloader -u eventlog > event.log
Search for NullPointerException within those logs and you'll be able to see what's causing it.
I can't explain the intermittent behaviour, but I had a similar situation where I was getting the java.lang.NullPointerException in the browser details. Unfortunately, the Event Log (as dumped by javaloader.exe) or by viewing on-device using Alt-L-G-L-G didn't show the exception.
(I'm using bb-ant-tools and JDE 4.6.1.) When the signature tool ran, I noticed that there were two .cod files being signed and I can see both of them inside the .jar file the compiler creates. But the output written was a single .cod file of size 92306 bytes that was not a .zip of smaller .cod files. The compiler somehow was not able to create a .cod that contained siblings. For comparison, compiling the project with JDE 5.0.0 created sibling .cod files that were able to be loaded over OTA.
My project included an .mp3 file of 53542 bytes which I happened to not require. After removing it, the 4.6.1 compiler outputted a single .cod and I was able to successfully download it via OTA.

Resources