C/C++中如何使用LOG输出进行跟踪
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,今天就跟大家聊聊有关C/C++中如何使用LOG输出进行跟踪,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。我们在JAVA的调试中经常会用到Log
千家信息网最后更新 2025年01月28日C/C++中如何使用LOG输出进行跟踪
今天就跟大家聊聊有关C/C++中如何使用LOG输出进行跟踪,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
我们在JAVA的调试中经常会用到Log.i什么的方法进行输出跟踪,这一篇我主要来说一下在NDK开发中,C++的代码中怎么实现日志输出。
实现方法
在c++文件中引用android/log.h头文件。
头文件中__android_log_print方法就是我们的日志输出方法。
通过#define的宏定义组装我们的__android_log_print方法。
在想输出日志的地方直接进行输出即可。
代码实现
我们还是用原来的那个Demo程序,按照我们的实现方法来进行
在c++文件中引用android/log.h头文件
我们打开native-lib.cpp文件,在顶部加入引用android/log.h,如下图
通过#define的宏定义组装我们的__android_log_print方法
代码为:
#define LOG_TAG "System.out"#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
在想输出日志的地方直接进行输出即可
我们直接在上一章的两个数相乘的方法中进行日志输出看看结果,改造一下
extern "C"
JNIEXPORT jint JNICALL
Java_dem_vac_vaccaendk_MainActivity_plusFromJNI(JNIEnv *env, jobject instance, jint a, jint b) {
//首先获取class,这里传入的参数jobject是代表了Mainactivity,所以我们要自己查找
jclass jcls=env->FindClass("dem/vac/vaccaendk/VaccaeJNI");
if (jcls == NULL) {
return 0;
}
//获取方法
jmethodID jmethod = env->GetMethodID(jcls, "Plus", "(II)I");
if(jmethod==NULL) {
return 0;
}
//输出传入的a和b参数
LOGI("a=%d",a);
LOGI("b=%d",b);
//调用访法
//第一个参数为jobject的这是传入的是jobject是Mainactivity,
//如果在CallIntMethod里面直接用传入的肯定会出错,因为我们的
//方法是在VaccaeJNI的类里面,所以我们首先要实例化那个类,再调用
jobject jobj = env->AllocObject(jcls);
jint retint = env->CallIntMethod(jobj, jmethod, a, b);
//输出调用相乘方法得到的结果
LOGI("result=%d",retint);
return retint;
}
接下来我们看一下运行后的结果
从上图中我们可以看到,在Logcat的日志中已经输出我们每一步的输出,这样在调试C/C++的代码中可以通过输出方式找到哪一步出的问题,方便我们开发,提高效率。
看完上述内容,你们对C/C++中如何使用LOG输出进行跟踪有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
输出
方法
文件
日志
代码
跟踪
内容
参数
结果
地方
c++
开发
接下来
上图
两个
代表
可以通过
实例
就是
常会
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ibm服务器诊断卡
asp 采集内容到数据库
孟凡荣数据库第六章课后答案
南京团购分销软件开发
上海机械软件开发调试
福建省网络安全平台教育
湖南宏工软件开发
服务器在数据库
软考数据库系统工程师视频资料
关闭qq多客户端管理服务器
国外知名的物流软件开发公司
瑞友天翼服务器安全吗
京东服务器为什么这么强
网络安全专业好学不
贝壳数据库导出来犯法吗
最大的文本数据库是什么
计算机网络技术专业软件
手游哪个服务器好玩
服务器安全组件
品质网络安全市场报价
上海珍岛网络技术有限公司
如何落实好网络安全
免流服务器搭建
数据库可以在线打补丁
联想服务器虚拟化费用
五个人软件开发测试
免费云服务器推荐
学软件开发专业
软件开发编程有什么证书
软件怎么修改数据库