- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 tombstone内不带call stack时如何调试
tombstone内不带call stack时如何调试?可以arm-linux-androideabi-addr2line.exe -e xxx.so -f 00018908 | arm-linux-androideabi-c++filt
2021-04-22 11:10:59
218
原创 gpuview 使用经验
http://graphics.stanford.edu/~mdfisher/GPUView.html安装包位置:包含在windows sdk内You can download GPUView as part of theWindows 7 SDK. After installing the SDK you will need to go to C:\Program Files\Microsoft SDKs\Windows\v7.0\bin and run either wpt_x64.msi o.
2020-09-25 19:08:10
2068
1
原创 ffmpeg android
#!/bin/bashNDK=/home/myusr/Downloads/android-ndk-r14bADDI_CFLAGS="-mfloat-abi=softfp -fPIE -pie"ADDI_LDFLAGS="-fPIE -pie"configure(){CPU=$1 PREFIX=$(pwd)/android/$CPUHOST=""CROSS_PREFIX=""SYS...
2019-11-15 10:54:55
338
原创 DirectShow filter日志打印
DbgLogdirectshow filter记录log文件可以使用DbgLog来实现.可以通过property来设置文件的存储位置,只有debug版本才会有效.下图的配置会被写入到注册表HKEY_LOCAL_MACHINE\SOFTWARE\Debug\myfilter.在启用程序时必须以管理员方式运行,否则会发生拒绝访问注册表....
2019-09-11 16:49:02
208
原创 Using Application Profiling to Detect Dynamic Dependencies
http://www.dependencywalker.com/help/html/application_profiling.htm启动程序会发生错误一般是缺少dll的原因,也有是因为加载了额外不需要的dll可以使用dependencywalker( depends.exe)打开执行文件,可以查看缺少那些dll,如果还是找不到原因就可以使用上面链接的方法,可以跟踪程序的启动过程,看最终错...
2019-06-28 16:10:55
137
转载 VS 配置 VC++ 目录
1. 随便打开一个项目,然后点击菜单中的 视图->其他窗口->属性管理器2. 打开属性管理器,点击项目前的箭头,展开项目,找到 debug 或者 release 下面的Microsoft.Cpp.Win32.user 这个属性。3. 双击会出现一个跟在项目上右键属性一样的窗口,修改里面的“VC++目录”就是修改了全局的。总览No. 目录 对应环境变量 ...
2019-05-06 14:38:17
9569
3
转载 伽罗华域(Galois Field,GF,有限域)
域的性质:群和域在数学上的概念就不解释,可以参考维基百科。当然也可以参考《密码编码学与网络安全》这书的有限域一章。形象地说,域有这样一个性质:在加法和乘法上具有封闭性。也就是说对域中的元素进行加法或乘法运算后的结果仍然是域中的元素。有一点要注意,域里面的乘法和加法不一定是我们平常使用的乘法和加法。可以把C语言中的与运算和异或运算分别定义成加法和乘法。但习惯上,仍然使用符号...
2019-03-05 18:29:56
19518
7
转载 valgrind使用
1. valgrind对于一些大型的android app可能没法通过activity启动程序,对于存native调试可以自己编写一个main函数直接调用native的code,这样就可以正常运行起来。2.使用android studio 创建executable 程序,引用之前需要调试的动态库3.对于在native so内可能引用了之前package相关的资源,需要修改引用路径,可以改为...
2019-02-20 15:40:41
979
转载 tombstones分析方法--转载自CrazyDiode的cnblog
1.什么是tombstone当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程号,线程号),死亡的地址(在哪个地址上发...
2018-09-13 18:31:18
5456
原创 gflag
•GFlags (全称Global FlagsEditor), gflags.exe, 作用:启用和禁用高级调试、诊断和故障诊断功能。它通常是用来设置标记,而其他工具据此跟踪、统计,并记录诊断信息。•Whereto get GflagsGFlagsis included in DebuggingTools for Windows.即windbg工具。...
2018-07-05 13:44:07
320
原创 Singleton使用 注意点
Singleton使用auto_ptr进行指针的管理,程序退出时自动释放资源。需要注意此对象内部成员对象内使用了其他Singleton对象,可以会出现非法资源引用。因为其他Singleton的对象可能会被提前释放。切记...
2018-03-16 11:48:24
234
原创 查找死锁的方法
死锁主要是由于操作不当导致线程之间出现相互等待,一般有source code的和pdb就可以找到死锁的原因,只要在code中不出现terminatethread,一般均可找到原因。若使用了第三方库,别人的code就不在我们的管控范围以内,很难定位到具体原因。 一般可以看到ntdll的临界区被占用,rtlEnterCriticalSection等待。此时又不知道被哪个线程占用,这种情况vs不能查
2017-11-07 15:50:13
1101
原创 runOnUiThread 更新ui
/** * Runs the specified action on the UI thread. If the current thread is the UI * thread, then the action is executed immediately. If the current thread is * not the UI thread, the action is post
2017-09-01 11:37:21
245
原创 android studio出现部分依赖库error
主要考虑是由于网络的原因导致gradle没有成功下载依赖库。此时可以考虑在setting的http proxy中添加代理服务器,并通过check connection来判断代理服务器是否可以连接。当本地使用的是proxy方式来上网时,会不能连接成功。此时再考虑在proxy server上开启无线网络,让其他机器可以上网,这样就能成功下载各种依赖库。
2017-08-30 13:09:36
294
原创 jni 学习
添加jni java调用的 过程:1. 编写java文件给出native的借口2.通 过 javah生成相应的c++ header文件, 后面需要自己实现具体的功能,并转存为c++文件3.在camakelist中添加c++source文件4.直接在java中调用即可上面是code的编写方法,具体的调用的注意点和原理还需继续深入理解,如何完成从java成调用到native
2017-08-08 18:59:59
196
转载 pscp使用
常用scp命令传输文件:前服务器文件abc.sql传输到192.168.1.1服务器上,执行以下命令:scp /home/person/1.txt root@192.168.1.1:/home/person/ 回车后输入服务器密码即可。 也可以使用以下命令:pscp /home/person/1.txt root@192.168.1.1:/home/person/
2017-08-07 14:56:00
1605
转载 sat-ip from wikipedia
Sat-IPFrom Wikipedia, the free encyclopediaThe Sat>IP logoA Sat>IP server, such as this Telestar R1, connects only to four satellite LNB feeds and an Ethern
2017-08-04 17:46:42
1251
原创 android aidl的使用
通过aidl编译的java可以看到里面主要有三部分内容:1. 一个静态抽象内部类Stustub。在service中,生成的静态抽象类创建了一个Binder对象,实现了其中有关计算的业务方法,并在onBind方法中返回它。在负责与clientBinder进行通信交互的同时,它也维护了service描述符与服务端service的映射。2. stub内部的proxy,这个类用来与server
2017-08-02 15:24:35
207
原创 messenger 的使用
messenger的底层对AIDL进行了封装,所以上层可以方便的进行进程间通信一般的使用方法:在service中创建一个messenger,重写OnBind用于返回messenger的Ibinderclient结合intent和serviceConnection使用bindservice完成messenger的绑定,它们之间通过message完成数据的封装发送,可以添加bund
2017-07-20 10:35:34
556
转载 循环删除list中的元素
循环删除list中元素的方法 循环删除list中的元素使用for循环是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了, JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。 1、for循环遍历listfor(int i=0;i){ if(list.get(i)
2017-07-12 18:15:07
298
原创 about memory leak
1.发生memory leak首先想到的是使用vld工具来进行辅助调试,可以很快的查找到未正确释放的资源。2.但并不是所有的leak均能够查找到,也许有些线程已经被你terminate掉了,这时就无法找到具体的堆栈信息。这是我们就需要将code中的所有terminate thread 屏蔽,重新来调试,找到异常的堆栈,这是可能是由于某个lock导致thread不能快速的exit,查找具体原因。
2017-06-29 20:58:58
207
转载 android上如何写配置文件
android上如何写配置文件:使用SharedPreferencesSharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停时,将此activity的状态保存到SharedPereferences中;当Activity重载,系统回调方法onSaveInstanceState时,再从SharedPre
2017-05-27 14:12:32
4188
原创 Vlc部分功能
Vlc部分功能流程图block_FifoGet获取编码的blockDecoderProcessDecoder thread DecoderProcessVideopacketizer_Pack
2017-05-23 17:47:03
1471
原创 freedos 调试笔记
可以通过diskginus工具制作freedos的启动盘,之后将freedos的image存入u盘即可。Freedos image可以到freedos官方网站下载,有轻量级的和全部两种image,一般的轻量级的即可。Free dos下面使用debug tool可以实现端口io的直接访问使用?或者help提示显示命令的格式。
2017-03-02 19:21:38
950
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人