Skip to content

Instantly share code, notes, and snippets.

View FlyingJester's full-sized avatar

Martin McDonough FlyingJester

View GitHub Profile
#include <unistd.h>
#include <cstdlib>
#include <pthread.h>
#include <cstdio>
#ifdef USE_PIPES
@FlyingJester
FlyingJester / concurrent_queue.h
Created July 7, 2014 00:54
A cross platform concurrent queue header, including a simple implementation using Unix pipes when no existing implementation is present
#pragma once
#ifdef _MSC_VER
#include <concurrent_queue.h>
using concurrency::concurrent_queue;
#else
#ifdef USE_INTEL_TBB
#include <tbb/concurrent_queue.h>
using tbb::concurrent_queue;
(gdb) bt
#0 0x40078f28 in __pthread_cond_timedwait () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libc.so
#1 0x40b1c7e2 in android::ALooperRoster::postAndAwaitResponse(android::sp<android::AMessage> const&, android::sp<android::AMessage>*) () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libstagefright_foundation.so
#2 0x40b1d3ba in android::AMessage::postAndAwaitResponse(android::sp<android::AMessage>*) () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libstagefright_foundation.so
#3 0x71cd88fa in android::MediaCodec::PostAndAwaitResponse(android::sp<android::AMessage> const&, android::sp<android::AMessage>*) () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libstagefright.so
#4 0x71cd9100 in android::MediaCodec::dequeueOutputBuffer(unsigned int*, unsigned int*, unsigned int*, long long*, unsigned int*, long long) () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libstagefright.so
#5 0x71c4ca5e in android::JMe
0:27.12 [dx] Merged dex A (116 defs/326.6KiB) with dex B (14 defs/26.6KiB). Result is 130 defs/503.2KiB. Took 0.0s
0:27.22 [dx] Merged dex A (130 defs/503.2KiB) with dex B (489 defs/455.2KiB). Result is 619 defs/1335.5KiB. Took 0.1s
0:27.32 [dx] Result compacted from 2075.9KiB to 694.3KiB to save 1381.6KiB
0:27.32 [dx] Merged dex A (619 defs/1335.5KiB) with dex B (45 defs/42.5KiB). Result is 664 defs/694.3KiB. Took 0.1s
0:27.47 [dx] Merged dex A (664 defs/694.3KiB) with dex B (2078 defs/2220.4KiB). Result is 2742 defs/3489.2KiB. Took 0.1s
0:27.47
0:27.47 -crunch:
0:27.48 [crunch] Crunching PNG Files in source dir: /Users/mozilla/ff/gd3/gecko-dev/obj-arm-linux-androideabi/embedding/android/geckoview_example/res
0:27.48 [crunch] To destination dir: /Users/mozilla/ff/gd3/gecko-dev/obj-arm-linux-androideabi/embedding/android/geckoview_example/bin/res
0:27.48 [crunch] Crunched 0 PNG files to update cache
0x4010d644 in ?? () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libc.so
(gdb) bt
#0 0x4010d644 in ?? () from /Users/mozilla/ff/jimdb-arm/lib/0738781d009994e0/system/lib/libc.so
#1 0x7a386ce4 in PR_Lock (lock=0x5a5a5a5a) at /Users/mozilla/ff/gd3/gecko-dev/nsprpub/pr/src/pthreads/ptsynch.c:177
#2 0x7ccc6cd2 in MonitorAutoLock (aMonitor=..., this=0x82288b80) at ../../dist/include/mozilla/Monitor.h:92
#3 mozilla::MediaTaskQueue::Dispatch (this=0x895c5ec0, aRunnable=...) at /Users/mozilla/ff/gd3/gecko-dev/content/media/MediaTaskQueue.cpp:32
#4 0x7ccf9288 in mozilla::MCVideoDataDecoder::Input (this=0x894d36c0, aSample=<optimized out>) at /Users/mozilla/ff/gd3/gecko-dev/content/media/fmp4/androidmc/AndroidDecoderModule.cpp:132
#5 0x7ccf722a in mozilla::MP4Reader::Decode (this=this@entry=0x890c6380, aTrack=aTrack@entry=mp4_demuxer::kVideo) at /Users/mozilla/ff/gd3/gecko-dev/content/media/fmp4/MP4Reader.cpp:371
#6 0x7ccf756e in mozilla::MP4Reader::DecodeVideoFrame (this=0x890c6380, aKeyfram
Filesystem Size Used Free Blksize
/dev 927.5M 128.0K 927.4M 4096
/sys/fs/cgroup 927.5M 12.0K 927.5M 4096
/mnt/asec 927.5M 0.0K 927.5M 4096
/mnt/obb 927.5M 0.0K 927.5M 4096
/system 1009.3M 704.9M 304.4M 4096
/data 12.6G 1.0G 11.5G 4096
/cache 689.8M 12.6M 677.2M 4096
/persist 15.8M 4.2M 11.6M 4096
/firmware 64.0M 44.3M 19.6M 16384
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
tmpfs /mnt/asec tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
@FlyingJester
FlyingJester / CodeGen3.cpp
Last active August 29, 2015 14:02
You can also modify actual instructions as well as data.
#include <cstdio>
#include <sys/mman.h>
#include <sys/types.h>
#include <cstring>
#include <cctype>
#include <cstdlib>
int main(int argc, const char * argv[])
{
@FlyingJester
FlyingJester / codegen.cpp
Created June 25, 2014 06:14
Example of using run-time modified machine code to add two numbers.
#include <cstdio>
#include <sys/mman.h>
#include <sys/types.h>
#include <cstring>
#include <cctype>
#include <cstdlib>
int main(int argc, const char * argv[])
{
@FlyingJester
FlyingJester / gist:0e6549a20a141900915b
Created June 25, 2014 04:51
Run-Time Code Injection
#include <cstdio>
#include <sys/mman.h>
#include <sys/types.h>
#include <cstring>
int main(int argc, const char * argv[])
{
// What we want to execute. in amd64, 0x90 is a no-op and 0xC3 is ret.