![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
调试技巧
文章平均质量分 54
Aero Auto
learning...
展开
-
pthread_cond_destroy死锁卡住问题处理记录
pthread_cond_destroy hang 阻塞原创 2022-09-27 17:06:03 · 1962 阅读 · 0 评论 -
buildroot添加HOST端工具
以zlog为例,假设我们需要在host添加编译一个zlog库。首先,在package/zlog/下面新增一个Config.in.host文件,对应命名都比Config.in多一个host字段:diff --git a/package/zlog/Config.in.host b/package/zlog/Config.in.hostnew file mode 100644index 00000000..0191c92f--- /dev/null+++ b/package/zlog/Config原创 2022-05-13 16:25:27 · 848 阅读 · 0 评论 -
error processing package libapache2-mod-php7.2
安装libpciaccess报错:Setting up php7.2-cli (7.2.24-0ubuntu0.18.04.11) ...dpkg: error processing package php7.2-cli (--configure): installed php7.2-cli package post-installation script subprocess returned error exit status 10No apport report written becaus原创 2022-05-05 15:05:58 · 803 阅读 · 0 评论 -
i2cTool交叉编译
https://i2c.wiki.kernel.org/index.php/I2C_ToolsI2C -tools包包含一组用于Linux的I2C工具:总线探测工具、芯片转储器、寄存器级SMBus访问助手、EEPROM解码脚本、EEPROM编程工具和用于SMBus访问的python模块。只要内核中包含I2C支持,就支持所有版本的Linux。这些工具曾经是航天器传感器软件包的一部分,但后来被拆分为一个单独的软件包。下载源码, 解压https://mirrors.edge.kernel.org/pub原创 2022-03-10 10:26:47 · 1332 阅读 · 0 评论 -
一文简述BSD,System V ,POSIX,SUS版本历史, 以及glibc移植的特性测试宏
BSD,System V ,POSIX,SUS 功能测试宏原创 2022-01-05 16:57:39 · 3463 阅读 · 0 评论 -
warning: implicit declaration of function ‘usleep’
implicit declaration of function ‘usleep’原创 2022-01-05 11:27:22 · 2686 阅读 · 0 评论 -
warning: implicit declaration of function ‘open_memstream’
implicit declaration of function ‘open_memstream’原创 2022-01-05 11:09:25 · 1290 阅读 · 2 评论 -
meson 概述
meson是一个编译系统,类似于 CMake 或者GNU Autotools. meson只是负责配置构建,后台默认是用ninja来编译的(当然也支持其它后台)。ninja是一个小型的致力于编译速度优化的编译系统,相当于make的替代物。所以meson+ninja相当于Cmake+make。meson设计目标是好用,同时保持高性能。它采用了一种自定义语言,号称简单、清晰和简洁性。很多灵感来自于Python编程语言,具有较好的易读性。meson的另一个设计目标,是为现代编程工具提供辅助的支持,包括单元测试原创 2021-11-21 23:37:45 · 13730 阅读 · 4 评论 -
va_list可变参数和判断
#include <stdarg.h>#define VNAME(name) (#name)#define Assert(name) do { \ if(NULL == name){ \ g_printerr("#error: %s is null.\n",VNAME(name)); \ return -1; \ } \}while(0) int CheckPointer(char *arg,...) { va_l原创 2021-08-11 16:14:40 · 428 阅读 · 0 评论 -
git 笔记
git 笔记远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --push[name][newUrl]拉取远程仓库:$ git pull [remoteName] [localBran原创 2021-08-11 11:28:36 · 3952 阅读 · 2 评论 -
Linux打印函数调用栈
应用程序打印调用栈定义dump_stack函数如下:#include <execinfo.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> #define STR_SIZE 100 #define STACK_MUN 100 void dump_stack(){ int j, strack_num; void *strack_buffer[STACK_原创 2021-07-29 10:16:09 · 596 阅读 · 0 评论 -
std::system_error
在退出的时候,C++抛出异常:terminate called after throwing an instance of 'std::system_error' what(): Invalid argument后来查到是因为std::thread被join了两次,一次是手动调用stop,一次是析构时调用:析构时调用,我主要是考虑到有的用户在使用时没有主动停止线程,就直接退出了。int AudioRecImpl::stop(){ int ret = 0; if (mAudi原创 2020-09-10 10:03:33 · 8151 阅读 · 0 评论 -
将std::thread作为类成员调用
最近想试一下std::thread 来替换pthread,发现网络上都是用全局的变量来开启线程。但是我一般倾向于在封装好的类中,直接开启新线程,对外仅仅保留调用接口。所以自己调试了一个模板,供大家参考!#include <iostream>#include <thread>using namespace std;class ThreadFunc{public: void start() { mydo = true;原创 2020-08-21 10:02:41 · 2983 阅读 · 2 评论 -
让你不再害怕 0, ‘0‘,‘\0‘,“\0“,“0“,“”,NULL,nullptr
0这个最简单吧,立即数,值为零。 char a = 0; printf("a=%d,a=%s\n",a,a);输出:a=0,a=(null)‘\0’单引号表示一个字符,\为转义符号,表示字符的ascii码值为0。如果要输出一个真正的字符零,需要写入字符零的ascii码 char a = '\0'; printf("a=%d,a=%s\n",a,a);输出:a=0,a=(null)0, ‘/0’,"/0",“0”,NULL,nullptr0, ‘/0’,"/0",“0”原创 2020-08-12 21:34:09 · 964 阅读 · 0 评论 -
git diff 中文 汉字编码显示
auto$:git diff auto_v1.0 HEAD --name-only“\345\274\200\345\217\221\347\216\257\345\242\203\351\205\215\347\275\256\346\211\213\345\206\214.pdf”设置:git config --global core.quotepath falseauto$:git diff auto_v1.0 HEAD --name-only“开发环境配置手册.pdf”...原创 2020-07-13 15:01:22 · 1140 阅读 · 0 评论 -
“shadows a parameter“ 和 “error: expected ‘}’ at end of input”
shadows a parameter一般检查函数、变量、结构体等存在重命名,有两个不同的对象使用了同一个名字,造成错误。error: expected ‘}’ at end of input一般是语句块不对称。比如{}不成对、()不成对,类声明后少分号等。...原创 2020-07-10 09:30:29 · 2021 阅读 · 0 评论 -
warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
drivers/video/fbdev/disp2/disp/dev_fb.c:129:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]s32 chanback = g_fbi.layer_hdl[fb_id][0];错误原因:ISO C90禁止变量声明在代码之后...原创 2020-04-22 17:13:11 · 787 阅读 · 0 评论 -
error: function declaration isn't a prototype [-Werror=strict-prototypes]
error: function declaration isn’t a prototype [-Werror=strict-prototypes]int show_fb_to_ui()警告原因是show_fb_to_ui函数参数没有时候,需要设置为void。修改方法一:int show_fb_to_ui(void)修改方法二:更改编译选项 -Werror=strict-proto...原创 2020-04-22 17:04:12 · 2135 阅读 · 0 评论 -
note: forward declaration of 'class QButtonGroup'
升级QT5.12.5之后,以前的一个应用编译失败,提示:error: invalid use of incomplete type ‘class QButtonGroup’Qt_5_12_5/include/QtWidgets/qabstractbutton.h:53:7: note: forward declaration of ‘class QButtonGroup’原因是没有变量声...原创 2020-03-09 16:39:41 · 1780 阅读 · 0 评论 -
SecureCRT停止滚屏 SecureCRT停止打印的设定
SecureCRT不停打印刷屏,有时候想看之前的信息就很烦。我们可以更改设置:去掉【输出时滚动到底部】前的钩,这样当拖动滚动条的时候,就不会再刷屏了。此时按下任意键可以继续滚动。...原创 2020-03-05 17:45:17 · 9386 阅读 · 0 评论 -
Qt库的GDB调试
在移植Qt之后,运行测试程序报错,发生在lib/libQt5Gui.so.5如果针对Qt自身的库文件添加GDB调试信息呢?如下验证有效:framework\qt\qt-everywhere-src-5.12.5\qtbase\mkspecs\linux-aarch64-gnu-g++\qmake.conf添加QMAKE_CFLAGS +=-g QMAKE_CXXFLAGS +=-g# ...原创 2019-12-25 16:41:12 · 1366 阅读 · 0 评论 -
linux设备驱动命令 lsmod insmod rmmod modinfo modprobe
lsmod 显示已经加载的模组:# lsmodmali 291301 0 - Live 0xbf1f5000 (O)xradio_core 231955 0 - Live 0xbf15b000xradio_mac 260629 1 xradio_core, Live 0xbf109000sunxi_eve 6574 0 - Live 0xbf103000gslX680new 64178...原创 2019-11-27 21:20:24 · 898 阅读 · 0 评论 -
shell 查找输入设备
shell 查找输入设备TouchDevice=gslX680for InputDevices in /sys/class/input/input*do DeviceName=`cat $InputDevices/name` #echo $InputDevices name:$DeviceName if [ $DeviceName == $TouchDevice ];...原创 2019-11-20 11:31:10 · 182 阅读 · 0 评论 -
一张图看懂git空间图例
一下git实验版本:git --versiongit version 1.9.1图例:resetlinux-3.10$:git st ./位于分支 airplay要提交的变更: (使用 "git reset HEAD <文件>..." 以取消暂存) 修改: README尚未暂存以备提交的变更: (使用 "git ad...原创 2019-10-21 13:51:37 · 322 阅读 · 0 评论 -
dos与shell常用脚本注释
一.dos注释,windows bat注释1.段落注释,多行注释使用go to命令跳过段落adb push %~dp0\test\. /tmp/test/goto start你看不到我看不到我。:start被看穿了吗?2.单行注释echo 1 ::你看不到我pause echo 2 remrem 你看不到我pause 3.行间注释echo %你看不到我...原创 2019-01-25 13:43:19 · 905 阅读 · 0 评论 -
git重置初始状态的两种方式:clean和stash
有时候环境有问题,我们需要回到最初的、未经过任何修改、没有任何未跟踪容纳的状态。这时候,clean就显得非常干净利落。git clean 选项描述-n 查看将删除的内容,并不执行删除-f 删除未跟踪文件-d 删除未跟踪目录-x 同时删除.gitignore中忽略的内容组合命令: git reset --hard HEAD git clean -xfdgit r...原创 2019-03-01 13:35:21 · 8821 阅读 · 0 评论 -
windows释放隐藏分区
有时候,当使用硬盘、u盘、卡类制作镜像升级之后,无法再将使用的空间释放。使用windows自带的磁盘管理无法也显示灰色。这时候,可以使用windows的diskpart来清除整个磁盘。1.win+r,运行cmd,输入diskpart:2.查看磁盘列表,list disk:3.选择需要清除的磁盘select disk +编号:4.清除选择的磁盘 clean:5.磁盘恢复正常了,...原创 2019-03-01 15:46:06 · 534 阅读 · 0 评论 -
如何在xshell环境使用gitk图形化工具
gitk很好用。当我换了一家公司之后,我发现没有gitk真是不方便。毕竟,只通过文本来开发的大神不是像我这样的一般人,我就爱偷懒的。你知道,当有直观而方便的界面存在时,还用指令时,我只能说:真是佩(变)服(态)!可是,话说回来,你是知道的。在我们的的开发环境里,很多时候是要在windows下,通过终端登录到linux编译服务器。比如这样子:当我习惯敲入gitk之后,悲剧发生了。xMan...原创 2019-04-10 13:50:43 · 3597 阅读 · 2 评论 -
超级有用的Makefile调试技巧
有时候makefile报错真是讨厌呢,找了一下发现这个资料不错,好喜欢好喜欢的呢。https://www.cnblogs.com/LoTGu/p/5936465.html转载 2019-04-23 14:14:36 · 183 阅读 · 1 评论 -
Cannot find user-level thread for LW
使用std thread创建线程,运行出错。gdb提示Cannot find user-level thread for LWP:gdb TestGNU gdb (GDB) 7.5Copyright © 2012 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later http://gnu.org/l...原创 2019-06-05 15:23:25 · 1895 阅读 · 0 评论 -
安卓-windows交叉编译调试脚本 adb+bat
覆盖原目标机测试文件:adb shell killall Testadb push %~dp0Test /usr/binadb shell chmod 777 /usr/bin/Test删除Windows当前输出目录,以及目标机远程输出目录rd /s /q %~dp0test_file\output\adb shell rm -r /tmp/output/*adb push %~d...原创 2019-06-12 19:12:24 · 228 阅读 · 0 评论 -
undefined reference to__gxx_personality_v0
trace_example example_02.cpp/tmp/ccJ1QB70.o:在函数‘atrace_call_test()’中:example_02.cpp:(.text+0xae):对‘__cxa_end_cleanup’未定义的引用/tmp/ccJ1QB70.o:(.ARM.extab+0x18):对‘__gxx_personality_v0’未定义的引用collect2: ...原创 2019-09-10 15:17:16 · 300 阅读 · 0 评论 -
undefined reference to __cxa_end_cleanup
/tmp/ccJ1QB70.o:在函数‘atrace_call_test()’中:example_02.cpp:(.text+0xae):对‘__cxa_end_cleanup’未定义的引用/tmp/ccJ1QB70.o:(.ARM.extab+0x18):对‘__gxx_personality_v0’未定义的引用collect2: error: ld returned 1 exit st...原创 2019-09-10 15:18:50 · 1136 阅读 · 0 评论 -
查询usb的VID和PID,判断usb设备类型
1.查询苹果设备id:https://devicehunt.com/search/type/usb/vendor/05AC/device/any2.查询iPhone的id:https://www.the-sz.com/products/usbid/index.php?v=&p=&n=iPhone原创 2019-09-26 17:27:09 · 3740 阅读 · 0 评论 -
printf log管理终极版本——printf字体颜色格式与log级别设置
1.printf字体设置在平常的调试中,printf字体格式与颜色都是默认一致的。如果可以根据log信息的重要程度,配以不同的颜色与格式,可以很方便的查找到要点。printf(&amp;quot;\033[显示格式;字体颜色;背景颜色m 字符串 \033[0m&amp;quot; );第一个\033是设置随后的字体格式,结尾处的\033[0m是恢复默认值。转义序列是以 ESC 开头,用 \033 完成相同的工作(ESC 的...原创 2019-01-11 19:23:29 · 1934 阅读 · 0 评论