1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

back to tracy_systrace after PR discussion

This commit is contained in:
Benoit Jacob 2020-11-25 11:55:57 -05:00
parent 602d38630f
commit 0e3d6935c7
4 changed files with 71 additions and 46 deletions

View File

@ -1180,15 +1180,10 @@ void SysTraceWorker( void* ptr )
close( pipefd[1] ); close( pipefd[1] );
sched_param sp = { 4 }; sched_param sp = { 4 };
pthread_setschedparam( pthread_self(), SCHED_FIFO, &sp ); pthread_setschedparam( pthread_self(), SCHED_FIFO, &sp );
// Try `cat /sys/kernel/debug/tracing/trace_pipe` first, and then
// possibly as a fallback /data/tracy_systrace. To make the fallback
// seamless, we redirect cat's stderr to /dev/null.
execlp( "su", "su", "root", "sh", "-c",
"cat /sys/kernel/debug/tracing/trace_pipe 2>/dev/null"
#if defined __ANDROID__ && ( defined __aarch64__ || defined __ARM_ARCH ) #if defined __ANDROID__ && ( defined __aarch64__ || defined __ARM_ARCH )
" || /data/tracy_systrace" execlp( "su", "su", "root", "sh", "-c", "/data/tracy_systrace", (char*)nullptr );
#endif #endif
, nullptr ); execlp( "su", "su", "root", "sh", "-c", "cat /sys/kernel/debug/tracing/trace_pipe", (char*)nullptr );
exit( 1 ); exit( 1 );
} }
} }

View File

@ -1,5 +1,5 @@
// File: '/home/wolf/desktop/tracy_systrace.armv7' (1210 bytes)` // File: '/home/wolf/desktop/tracy_systrace.armv7' (1210 bytes)`
// File: '/home/wolf/desktop/tracy_systrace.aarch64' (1650 bytes) // File: 'extra/systrace/tracy_systrace' (2488 bytes)
// Exported using binary_to_compressed_c.cpp // Exported using binary_to_compressed_c.cpp
@ -37,44 +37,61 @@ static const unsigned int tracy_systrace_armv7_data[1212/4] =
0x00000000, 0x000001dc, 0x000001dc, 0x00000000, 0x000001dc, 0x000001dc,
}; };
static const unsigned int tracy_systrace_aarch64_size = 1650; static const unsigned int tracy_systrace_aarch64_size = 2488;
static const unsigned int tracy_systrace_aarch64_data[1652/4] = static const unsigned int tracy_systrace_aarch64_data[2488/4] =
{ {
0x464c457f, 0x00010102, 0x00000000, 0x00000000, 0x00b70003, 0x00000001, 0x00000300, 0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x464c457f, 0x00010102, 0x00000000, 0x00000000, 0x00b70003, 0x00000001, 0x000002e0, 0x00000000, 0x00000040, 0x00000000, 0x000006b8, 0x00000000,
0x00000000, 0x00380040, 0x00400006, 0x00000000, 0x00000006, 0x00000005, 0x00000040, 0x00000000, 0x00000040, 0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00380040, 0x00400006, 0x000b000c, 0x00000006, 0x00000005, 0x00000040, 0x00000000, 0x00000040, 0x00000000, 0x00000040, 0x00000000,
0x00000150, 0x00000000, 0x00000150, 0x00000000, 0x00000008, 0x00000000, 0x00000003, 0x00000004, 0x00000190, 0x00000000, 0x00000190, 0x00000000, 0x00000150, 0x00000000, 0x00000150, 0x00000000, 0x00000008, 0x00000000, 0x00000003, 0x00000004, 0x00000190, 0x00000000, 0x00000190, 0x00000000,
0x00000190, 0x00000000, 0x00000015, 0x00000000, 0x00000015, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000005, 0x00000000, 0x00000000, 0x00000190, 0x00000000, 0x00000015, 0x00000000, 0x00000015, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000005, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000004d1, 0x00000000, 0x000004d1, 0x00000000, 0x00010000, 0x00000000, 0x00000001, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000004c1, 0x00000000, 0x000004c1, 0x00000000, 0x00001000, 0x00000000, 0x00000001, 0x00000006,
0x000004d8, 0x00000000, 0x000104d8, 0x00000000, 0x000104d8, 0x00000000, 0x0000019a, 0x00000000, 0x000001a0, 0x00000000, 0x00010000, 0x00000000, 0x000004c8, 0x00000000, 0x000014c8, 0x00000000, 0x000014c8, 0x00000000, 0x00000190, 0x00000000, 0x00000190, 0x00000000, 0x00001000, 0x00000000,
0x00000002, 0x00000006, 0x000004d8, 0x00000000, 0x000104d8, 0x00000000, 0x000104d8, 0x00000000, 0x00000170, 0x00000000, 0x00000170, 0x00000000, 0x00000002, 0x00000006, 0x000004c8, 0x00000000, 0x000014c8, 0x00000000, 0x000014c8, 0x00000000, 0x00000160, 0x00000000, 0x00000160, 0x00000000,
0x00000008, 0x00000000, 0x6474e551, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x6474e551, 0x00000006, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x7379732f, 0x2f6d6574, 0x2f6e6962, 0x6b6e696c, 0x34367265, 0x00000000, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x7379732f, 0x2f6d6574, 0x2f6e6962, 0x6b6e696c, 0x34367265, 0x00000000, 0x00000000, 0x00000000,
0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000a0003, 0x00000300, 0x00000000,
0x00000000, 0x00000000, 0x0000000a, 0x00000012, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000011, 0x00000012, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x62696c00, 0x732e6c64, 0x6c64006f, 0x6e65706f, 0x736c6400, 0x4c006d79, 0x00434249, 0x00000000, 0x00020002, 0x00000000,
0x00010001, 0x00000001, 0x00000010, 0x00000000, 0x00050d63, 0x00020000, 0x00000017, 0x00000000, 0x00010668, 0x00000000, 0x00000402, 0x00000002,
0x00000000, 0x00000000, 0x00010670, 0x00000000, 0x00000402, 0x00000003, 0x00000000, 0x00000000, 0xa9bf7bf0, 0x90000090, 0xf9433211, 0x91198210,
0xd61f0220, 0xd503201f, 0xd503201f, 0xd503201f, 0x90000090, 0xf9433611, 0x9119a210, 0xd61f0220, 0x90000090, 0xf9433a11, 0x9119c210, 0xd61f0220,
0xf81b0ffc, 0xa9015ff8, 0xa90257f6, 0xa9034ff4, 0xa9047bfd, 0x910103fd, 0xd14043ff, 0xd10043ff, 0x90000000, 0x91120000, 0x320003e1, 0x97ffffed,
0x90000001, 0x91122021, 0xaa0003f7, 0x97ffffed, 0x90000001, 0xaa0003f8, 0x91123421, 0xaa1703e0, 0x97ffffe8, 0x90000001, 0xaa0003f3, 0x91124821,
0xaa1703e0, 0x97ffffe3, 0x90000001, 0xaa0003f4, 0x91125c21, 0xaa1703e0, 0x97ffffde, 0x90000001, 0xaa0003f5, 0x91128421, 0xaa1703e0, 0x97ffffd9,
0x90000001, 0xaa0003f6, 0x91129821, 0xaa1703e0, 0x97ffffd4, 0xaa0003f7, 0x90000000, 0x9112b000, 0x2a1f03e1, 0xd63f0300, 0x2a0003f8, 0x36f80060,
0x2a1f03e0, 0xd63f0260, 0x90000008, 0x3dc11d00, 0x52800128, 0xb81c83b8, 0x781cc3a8, 0x3d8003e0, 0x14000005, 0x93407c02, 0x320003e0, 0x910043e1,
0xd63f02e0, 0xd100e3a0, 0x320003e1, 0x2a1f03e2, 0xd63f0280, 0x7100001f, 0x5400014c, 0x910003e0, 0xaa1f03e1, 0xd63f02a0, 0xd100e3a0, 0x320003e1,
0x2a1f03e2, 0xd63f0280, 0x7100041f, 0x54ffff0b, 0x910043e1, 0x321003e2, 0x2a1803e0, 0xd63f02c0, 0x7100041f, 0x54fffd0a, 0x2a1f03e0, 0xd63f0260,
0x914043ff, 0x910043ff, 0xa9447bfd, 0xa9434ff4, 0xa94257f6, 0xa9415ff8, 0xf84507fc, 0xd65f03c0, 0x00000000, 0x00000000, 0x00989680, 0x00000000,
0x6362696c, 0x006f732e, 0x6e65706f, 0x69786500, 0x6f700074, 0x6e006c6c, 0x736f6e61, 0x7065656c, 0x61657200, 0x72770064, 0x00657469, 0x7379732f,
0x72656b2f, 0x2f6c656e, 0x75626564, 0x72742f67, 0x6e696361, 0x72742f67, 0x5f656361, 0x65706970, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x00000001, 0x00000000, 0x00000004, 0x00000000, 0x000001a8, 0x00000000, 0x6ffffef5, 0x00000000, 0x000001c8, 0x00000000, 0x00000005, 0x00000000,
0x00000248, 0x00000000, 0x00000006, 0x00000000, 0x000001e8, 0x00000000, 0x0000000a, 0x00000000, 0x0000001c, 0x00000000, 0x0000000b, 0x00000000,
0x00000018, 0x00000000, 0x00000015, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00010650, 0x00000000, 0x00000002, 0x00000000,
0x00000030, 0x00000000, 0x00000014, 0x00000000, 0x00000007, 0x00000000, 0x00000017, 0x00000000, 0x00000290, 0x00000000, 0x0000001e, 0x00000000,
0x00000008, 0x00000000, 0x6ffffffb, 0x00000000, 0x00000001, 0x00000000, 0x6ffffffe, 0x00000000, 0x00000270, 0x00000000, 0x6fffffff, 0x00000000,
0x00000001, 0x00000000, 0x6ffffff0, 0x00000000, 0x00000264, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000104d8, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00090003, 0x000002e0, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000012, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x000002c0, 0x00000000, 0x000002c0, 0x0000000a, 0x00000012, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x62696c00, 0x732e6c64, 0x6c64006f, 0x006d7973, 0x706f6c64, 0x4c006e65,
0x00434249, 0x00000000, 0x00000000, 0x00000000, 0x00010001, 0x00000001, 0x00000010, 0x00000000, 0x00050d63, 0x00020000, 0x00000017, 0x00000000,
0x00001648, 0x00000000, 0x00000402, 0x00000002, 0x00000000, 0x00000000, 0x00001650, 0x00000000, 0x00000402, 0x00000003, 0x00000000, 0x00000000,
0xa9bf7bf0, 0xb0000010, 0xf9432211, 0x91190210, 0xd61f0220, 0xd503201f, 0xd503201f, 0xd503201f, 0xb0000010, 0xf9432611, 0x91192210, 0xd61f0220,
0xb0000010, 0xf9432a11, 0x91194210, 0xd61f0220, 0xf81b0ffc, 0xa9015ff8, 0xa90257f6, 0xa9034ff4, 0xa9047bfd, 0x910103fd, 0xd14043ff, 0xd10043ff,
0x90000000, 0x9111c000, 0x52800021, 0x97ffffed, 0x90000001, 0x9111e021, 0xaa0003f7, 0x97ffffed, 0x90000001, 0xaa0003f8, 0x9111f421, 0xaa1703e0,
0x97ffffe8, 0x90000001, 0xaa0003f3, 0x91120821, 0xaa1703e0, 0x97ffffe3, 0x90000001, 0xaa0003f4, 0x91121c21, 0xaa1703e0, 0x97ffffde, 0x90000001,
0xaa0003f5, 0x91124421, 0xaa1703e0, 0x97ffffd9, 0x90000001, 0xaa0003f6, 0x91125821, 0xaa1703e0, 0x97ffffd4, 0xaa0003f7, 0x90000000, 0x91127000,
0x2a1f03e1, 0xd63f0300, 0x2a0003f8, 0x36f80060, 0x2a1f03e0, 0xd63f0260, 0x90000008, 0x3dc11900, 0x52800128, 0xb81c83b8, 0x781cc3a8, 0x3d8003e0,
0xd100e3a0, 0x52800021, 0x2a1f03e2, 0xd63f0280, 0x7100001f, 0x5400014c, 0x910003e0, 0xaa1f03e1, 0xd63f02a0, 0xd100e3a0, 0x52800021, 0x2a1f03e2,
0xd63f0280, 0x7100041f, 0x54ffff0b, 0x910043e1, 0x52a00022, 0x2a1803e0, 0xd63f02c0, 0xf100041f, 0x540000eb, 0xaa0003e2, 0x910043e1, 0x52800020,
0xd63f02e0, 0xf100001f, 0x54fffccc, 0x2a1f03e0, 0xd63f0260, 0x914043ff, 0x910043ff, 0xa9447bfd, 0xa9434ff4, 0xa94257f6, 0xa9415ff8, 0xf84507fc,
0xd65f03c0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00989680, 0x00000000, 0x6362696c, 0x006f732e, 0x6e65706f, 0x69786500,
0x6f700074, 0x6e006c6c, 0x736f6e61, 0x7065656c, 0x61657200, 0x72770064, 0x00657469, 0x7379732f, 0x72656b2f, 0x2f6c656e, 0x75626564, 0x72742f67,
0x6e696361, 0x72742f67, 0x5f656361, 0x65706970, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x6ffffef5, 0x00000000,
0x000001a8, 0x00000000, 0x00000005, 0x00000000, 0x00000228, 0x00000000, 0x00000006, 0x00000000, 0x000001c8, 0x00000000, 0x0000000a, 0x00000000,
0x0000001c, 0x00000000, 0x0000000b, 0x00000000, 0x00000018, 0x00000000, 0x00000015, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000000,
0x00001630, 0x00000000, 0x00000002, 0x00000000, 0x00000030, 0x00000000, 0x00000014, 0x00000000, 0x00000007, 0x00000000, 0x00000017, 0x00000000,
0x00000270, 0x00000000, 0x0000001e, 0x00000000, 0x00000008, 0x00000000, 0x6ffffffb, 0x00000000, 0x00000001, 0x00000000, 0x6ffffffe, 0x00000000,
0x00000250, 0x00000000, 0x6fffffff, 0x00000000, 0x00000001, 0x00000000, 0x6ffffff0, 0x00000000, 0x00000244, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x000002a0, 0x00000000, 0x000002a0, 0x00000000, 0x68732e00, 0x74727473,
0x2e006261, 0x65746e69, 0x2e007072, 0x736e7964, 0x2e006d79, 0x736e7964, 0x2e007274, 0x2e756e67, 0x73726576, 0x5f6e6f69, 0x722e0072, 0x2e616c65,
0x00746c70, 0x7865742e, 0x722e0074, 0x7461646f, 0x642e0061, 0x6d616e79, 0x2e006369, 0x2e746f67, 0x00746c70, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x0000000b, 0x00000001, 0x00000002, 0x00000000, 0x00000190, 0x00000000, 0x00000190, 0x00000000, 0x00000015, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000013, 0x0000000b, 0x00000002, 0x00000000, 0x000001c8, 0x00000000,
0x000001c8, 0x00000000, 0x00000060, 0x00000000, 0x00000003, 0x00000002, 0x00000008, 0x00000000, 0x00000018, 0x00000000, 0x0000001b, 0x00000003,
0x00000002, 0x00000000, 0x00000228, 0x00000000, 0x00000228, 0x00000000, 0x0000001c, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000023, 0x6ffffffe, 0x00000002, 0x00000000, 0x00000250, 0x00000000, 0x00000250, 0x00000000, 0x00000020, 0x00000000,
0x00000003, 0x00000001, 0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000032, 0x00000004, 0x00000042, 0x00000000, 0x00000270, 0x00000000,
0x00000270, 0x00000000, 0x00000030, 0x00000000, 0x00000002, 0x0000000a, 0x00000008, 0x00000000, 0x00000018, 0x00000000, 0x00000037, 0x00000001,
0x00000006, 0x00000000, 0x000002a0, 0x00000000, 0x000002a0, 0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000,
0x00000010, 0x00000000, 0x0000003c, 0x00000001, 0x00000006, 0x00000000, 0x000002e0, 0x00000000, 0x000002e0, 0x00000000, 0x00000174, 0x00000000,
0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x00000042, 0x00000001, 0x00000002, 0x00000000, 0x00000460, 0x00000000,
0x00000460, 0x00000000, 0x00000061, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x0000004a, 0x00000006,
0x00000003, 0x00000000, 0x000014c8, 0x00000000, 0x000004c8, 0x00000000, 0x00000160, 0x00000000, 0x00000003, 0x00000000, 0x00000008, 0x00000000,
0x00000010, 0x00000000, 0x00000053, 0x00000001, 0x00000003, 0x00000000, 0x00001630, 0x00000000, 0x00000630, 0x00000000, 0x00000028, 0x00000000,
0x00000000, 0x00000000, 0x00000008, 0x00000000, 0x00000008, 0x00000000, 0x00000001, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000658, 0x00000000, 0x0000005c, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
}; };
} }

View File

@ -1,4 +1,14 @@
#!/bin/sh #!/bin/sh
clang tracy_systrace.c -s -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -fno-stack-protector -Wl,-z,norelro -Wl,--build-id=none -nostdlib -ldl -o tracy_systrace : ${CC:=clang}
strip --strip-all -R .note.gnu.gold-version -R .comment -R .note -R .note.gnu.build-id -R .note.ABI-tag -R .eh_frame -R .eh_frame_hdr -R .gnu.hash -R .gnu.version -R .got tracy_systrace : ${STRIP:=strip}
sstrip -z tracy_systrace : ${SSTRIP:=}
$CC tracy_systrace.c -s -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -fno-stack-protector -Wl,-z,norelro -Wl,--build-id=none -nostdlib -ldl -o tracy_systrace
$STRIP --strip-all -R .note.gnu.gold-version -R .comment -R .note -R .note.gnu.build-id -R .note.ABI-tag -R .eh_frame -R .eh_frame_hdr -R .gnu.hash -R .gnu.version -R .got tracy_systrace
if [[ ! -z "$SSTRIP" ]]
then
$SSTRIP -z tracy_systrace
fi

View File

@ -44,9 +44,12 @@ void _start()
for(;;) for(;;)
{ {
while( sym_poll( &pfd, 1, 0 ) <= 0 ) sym_nanosleep( &sleepTime, NULL ); while( sym_poll( &pfd, 1, 0 ) <= 0 ) sym_nanosleep( &sleepTime, NULL );
const int rd = sym_read( kernelFd, buf, BufSize ); const ssize_t rd = sym_read( kernelFd, buf, BufSize );
if( rd <= 0 ) break; if( rd <= 0 ) break;
sym_write( STDOUT_FILENO, buf, rd ); const ssize_t wr = sym_write( STDOUT_FILENO, buf, rd );
// Termination condition occurring on exit of the profiled program,
// when the parent process closes the pipe.
if( wr <= 0 ) break;
} }
sym_exit( 0 ); sym_exit( 0 );