strncpy发生stack corruption detected(-fstack-protector)栈溢出
代码:char line[MAX] = {0};strncpy(line,pBeginObj,(ptemp - pBeginObj + 1));log如下:解释:char *strncpy(char *dest, const char *src, int n)把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中0x746d498e86 -...
将assets文件转为byte[]
assets文件在apk安装到手机后,在手机里没有绝对路径,只有相对路径!!!代码:animRes.m_AnimSklFile = readFileFromAssets(this.getActivity(),null,"animation.skl");animRes.m_AnimFiles[0] = readFileFromAssets(this.getActivity(),nul...
三个线程轮流执行顺序打印ABC
public class ThreadThreadp{ public static String TAG = "ThreadThreadp"; private int flag = 0; public synchronized void printa() throws InterruptedException{ while(true){ ...
Fatal:can not read section '.dynamic'
出现过如下编译错误问题:Fatal:can not read section '.dynamic'target C++: com.qti.chi.override_32 <= vendor/qcom/proprietary/chi-cdk/vendor/chioverride/default/chxusecaseutils.cppninja:build stopped: subc...
设置loglevel,封装__android_log_print()
typedef struct tag_LOG{ int logLevel;}LOG, *LPLOG;static LOG gLog = {0};#define LOGE_LEVEL 1#define LOGW_LEVEL 2#define LOGI_LEVEL 3#define LOGD_LEVEL 4#define LOGV_LEVEL 5#ifdef ...
adb logcat命令
[0 adb logcat --help]adb logcat --help-s:设置输出日志的标签, 只显示该标签的日志-f:将日志输出到文件(手机上)-v:设置日志的输出格式, 注意只能设置一项-g:查看日志缓冲区信息-G:设置日志缓冲区[1 adb logcat -s]adb logcat -s LogUtiladb logcat -s LogUti...
[JNI]Local Reference不可存入到一个static变量里,Global Reference可存入一个static变量里
来看下如下代码的stringClass:/* This code is illegal */jstring MyNewString(JNIEnv *env, jchar *chars, jint len){ static jclass stringClass = NULL; jmethodID cid; jcharArray elemArr; jstrin...
Java和C++中的volatile
1.Java中的volatile:在Java内存模型中,线程共享的资源放在主存中,每个线程同时拥有自己的本地内存。而本地内存中存放了被该线程使用到的主内存变量的拷贝。线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的变量。由此可能导致线程间无法读取变量的最新状态。被volatile修饰的变量在修改时会被强制写到主存中,从而保证该变量对其他线程的可见性。2.C++中的volat...
[JNI]FindClass
FindClassjclass FindClass(const char* name)返回一个类的引用env->FindClass("java/lang/String");env->FindClass(HELLOLIBS_JNI_CLASS_NAME);#define HELLOLIBS_JNI_CLASS_NAME "com/test/hello_libs/...
[JNI]GetStringLength与GetStringUTFLength的区别
代码:jclass strCls = env->FindClass("java/lang/String");jmethodID mid = env->GetMethodID(strCls,"<init>","([C)V");jstring strUnicode = env->NewStringUTF("aaa"); jint len = env-&...
__attribute__((aligned))
__attribute__ 语法的来源GNU C 的一大特色就是__attribute__ 机制。attribute可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。attribute 语法格式为: attribute ((attribute-list))当__attribute...
[JNI]截断jboolean类型问题
jboolean是一个8位的unsigned类型,值范围为0~255.0对应JNI_FALSE,1~255对应JNI_TRUE.对于32位或16位的变量a赋值给jboolean时,如果a的低8位为0会出现逻辑问题.代码:void print(jboolean condition){ if (condition) { printf("true\n"); ...
[JNI]缓存域ID(Filed ID)和方法ID(Method ID)
下面举例说明了没有缓存域ID可能带来的bug:class C { private int i; native void f();}(1)不缓存域ID:1) 获取对象的类,GetObjectClass.2) 找出变量i的域ID,GetFieldID.3) 基于域ID获取域值,GetIntField.// No field IDs cached.JNIE...
[JNI]Accessing Arrays
分两种情况:(1)基本元素数组(2)对象数组(1)基本元素数组(i)拷贝基本元素数组:JNIEXPORT jint JNICALL Java_IntArray_sumArray(JNIEnv *env, jobject obj, jintArray arr){ jint buf[10]; jint i, sum = 0; (*env)->...
[JNI]jni层设置对象数组到java层
java层:class RECT{ int left; int top; int right; int bottom;} public class HAND{ public RECT[] prtHands; public HAND(){ }}jni层:#define HAND_JNI_...
[JNI]java层传递byte[][]到jni层
java层:public class ANIM{ public byte[][] mAnim;}ANIM anim = new ANIM();anim.mAnim = new byte[2][];anim.mAnim[0] = new byte[512];anim.mAnim[0][0] = 1;anim.mAnim[1] = new byte[512];anim.mA...
网络编程中read使用错误引起的崩溃
网络编程中,基础接口read的使用要格外注意,先上有问题的代码:int socketTCP::readn(char *buf,size_t len){ int ret = 0; size_t left = len; while(left>0){ ret = ::read(sock_,buf,len); if(ret<0){ return -1; } if(ret==0){
今日推荐
周排行