- 博客(44)
- 资源 (2)
- 收藏
- 关注
原创 Android.mk简单介绍、规则与基本格式
Android.mk简单介绍、规则与基本格式。Android.mk与makefile区别;Android.mk规则;Android.mk基本格式。
2024-05-22 17:39:52
945
原创 crash问题常用分析方法
1. 什么是crash?代码异常导致进程退出的现象2. 为什么会crash?访问堆、栈上的异常地址3. 平时调试或者客户端遇到crash问题,如何分析,是否有具体的方法?目前常用的有三种分析手段
2023-10-24 19:53:52
385
原创 用了7年的 source insight 3.5 背景色及字体配置(提升code效率)
在此记录并share用了7年的 source insight 3.5 背景色及字体配置,提升阅读代码效率
2023-06-07 11:57:27
6275
2
原创 Geany 尝试访问以另一用户身份运行的另一实例的 Unix Domain socket
ubuntu下查看日志一直用的geany工具,结果最近打开报错“
2023-05-12 11:58:26
240
原创 error: no such file or directory: linker input unused; Wunused-command-line-argument
最近改makefile,改出一个bug,浪费了比较多时间,在网上未找到解决方案,分享出来,避免再次踩坑。clang: error: ***android-ndk-r15c/platforms/android-24/arch-x86_64/usr/include: 'linker' input unused [-Werror,-Wunused-command-line-argument]
2023-01-11 21:06:01
1679
原创 arm汇编指令——分析问题的利器
分析问题中会涉及到看反汇编代码,通过反汇编code推断代码逻辑,从而更快更准确定位问题点,所以学会看反汇编代码是必要的。
2022-12-20 17:47:40
2225
原创 【年终总结的关键点】
个人工作总结,是对过去一年做了什么,什么做好了,什么没做好,也是对下一年怎么做的更好的提前规划。年终总结,是给老板一个交代,更是给自己做一个全年的复盘。所以,年终总结,不仅应该让领导满意,更需要自己满意。如果自己不满意,就需要做出变化总结维度:领导满意:我提供了什么价值?站在领导角度看,对你的期望是否达成?自己满意:我获得了什么收获和成长?有哪些做的不好的?找到自己主导项目的核心关注点,在关键点上做的如何?项目亮点PPT形式精简,不繁琐,不关注细节数据支撑。
2022-12-12 12:14:06
240
原创 pandas read_csv sep用法
pandas read_csv用法python读取csv到dataframe遇到多个分割符,如何调用一次read_csv搞定!官网(pandas.read_csv)看到可以sep入参用正则,但是示例不太清楚,这里说明一下。关于sep入参介绍的官网原文关于多个分割符的意思如下:此外,大于1个字符且不同于’\s+'的分隔符将被解释为正则表达式,并将强制使用Python解析引擎。注意,正则表达式分隔符很容易忽略引用的数据。正则表达式的例子:“\ r \ t”。正确用法csv_df = pd.read_
2021-11-16 20:00:58
4647
原创 大话设计模式之装饰模式(python实现)
大话设计模式之装饰模式使用场景定义装饰模式结构图python实现装饰模式代码结构图使用场景建造过程不稳定,不确定。把所需的功能按照正确的顺序串联起来进行控制定义动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活装饰模式结构图Component是定义一个对象接口,可以给这个对象动态添加职责,对应下文python实现中的Persion类Decorator继承Component类,是通过具体装饰类抽象出来的一个类,对应下文python实现中的Finery类Concr
2021-11-09 16:44:41
823
原创 Python版本管理工具强推conda
什么是condaConda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。用conda管理python版本很方便,不担心python版本混乱。Conda常用命令查询完整帮助文件conda create --help or conda create -h 其实“–”参数一般都有简写。管理conda和anacondaconda info 查询conda信息conda update conda 升级condaconda update
2021-10-24 23:46:18
452
原创 python main进程退出,子进程未退出,成为孤儿进程问题fix; os._exit(); sys.exit()
问题现象python代码中有多进程逻辑,或使用Manager用于进程间数据共享。run过程中,linux下执行’ps -ef’查看相关进程数,有1个主进程18517,4个子进程18523\18528\18533\18535: 18517 17548 0 14:39 ? 00:00:00 /home/anaconda3/envs/python2.7/bin/python /home/Projects/script/main 18523 18517 0 14:39 ? 0
2021-09-06 11:16:52
2212
原创 统计栈大小及优化方法
统计栈大小及优化方法文章目录统计栈大小及优化方法问题背景分析方法解决方案问题背景栈溢出导致crash,某模块子线程的栈空间只有1M大小,超过1M导致crash。分析方法系统栈内存大小可,通过ulimit -a查看core file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size
2021-07-19 16:36:40
2101
2
原创 ubuntu cannot start pycharm, Required tools are missing: realpath***
ubuntu cannot start pycharm, Required tools are missing: realpath ***安装pycharm 2021.1版本遇到的坑官网下载pycharm linux包解压到文件夹按照官网说明,运行文件夹下./pycharm-community-2021.1.2/bin/pycharm.sh弹错误窗口“cannot start pycharm, Required tools are missing: realpath (SHELL=*** PATH
2021-06-25 16:47:26
6589
8
原创 通过Jenkins Script Console批量修改Jenkins任务
文章目录遇到了什么问题?如何高效解决具体解决方案小结遇到了什么问题?Jenkins在运行过程中会生成很多结果文件,时间一长,其所占用的磁盘空间就越来越大,Jenkins 所在的服务器就会经常报硬盘空间不足。一个个手动删除效率太低,有没有更好的解决方案呢?如何高效解决那就是Script Console,可以批量修改Jenkins所有项目的job,大大提升工作效率,减少繁琐的手动操作具体解决方案四步走策略:遍历所有项目找到每个项目各自最大的构建编号maxNumber最大构建编号 - 10,得
2021-01-19 10:55:54
1282
原创 又遇隐式声明的大坑,本篇阐述让你:透过现象看到本质
又遇隐式声明的大坑什么是隐式声明实验分析总结什么是隐式声明在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码实验分析两个.c文件:func_123.c源文件:{code:c}#include <stdint.h>#include <stdio.h>char *func_123(int32_t size, uint8_t defaultValue){char *addr = NULL;ad
2021-01-18 11:37:03
403
2
原创 常用IDE快捷键(Source Insight、Sublime、Eclipse、Visual Stdio)
使用IDE过程中积累的一些快捷键,可以有效提高工作效率,不论是coding还是review code,share给大家Source Insight选择一个单词 : Shift+F5高亮当前单词 : Shift+F8选择一行 : Shift+F6文件内search:Ctrl + F,配合F3\F4向前向后查找检查引用(项目内search) : Ctrl+/,配合Ctr...
2019-11-12 17:29:30
427
原创 Eclipse: Could not find symbol "XXX" in index
ForewordEclipse作为强大的IDE,如果不能实现定义跳转也就索然无味。用习惯了source insight,看代码真的很方便,但是写代码就效率很低,但是eclipse就很适合codingFix问题原因为导入已存在项目方式不对,具体方法如下:新建项目:单击右键->new->project-> c++ project项目文件夹上右键单击-> Prope...
2019-11-12 17:06:49
2058
5
原创 目录操作高手是如何炼成:dirs & pushd & popd
文章目录前言命令简述dirs使用pushd使用popd使用前言Linux系统中,我们在目录之间切换一般使用cd命令,cd虽然可在目录之间来回切换,但是cd的效率太低,进入之后退出需要反复输入路径;那有没有一种高效简单的目录操作命令?答案是肯定的,那就是:pushd & popd命令简述dirs:显示当前所在目录以及目录栈的内容pushd(push dir): 将目录压入目...
2019-03-08 11:47:09
254
原创 大小端转换源码
背景在不同的计算机系统中,数据的存储和读取有所不同,计算机的通信和存储依赖于一致的规则。目前计算机通常采用的存储机制主要有两种:大端模式(Big-endian)和小端模式(Little-endian)大下端常规定义大端模式:数据的低位或低字节(对整个序列取值影响最小的那个bit/byte)保存在内存的高地址中,而数据的高位或高字节,存储时放在低地址,读取时放在流开始。这样的存储模式有点儿类似...
2019-03-07 15:18:15
1401
原创 C语言读取和存储bmp格式图片
开发过程中有时候需要解析bmp数据,下面先简单介绍bmp数据组成,后面附上C语言读取和存储bmp格式图片代码。典型的位图文件格式通常包含下面几个数据块:BMP文件头:保存位图文件的总体信息。位图信息头:保存位图图像的详细信息。位图信息:保存位图图像的详细信息。调色板:保存所用颜色的定义。调色板:保存所用颜色的定义。位图数据:保存一个又一个像素的实际图像。位图数据:保存一个又一个像素的实...
2019-02-22 17:40:15
11537
9
原创 git command and git config
git command and git config一、常用git命令提交所有工作区文件,包括未被跟踪的文件git add -A1 git add -A 提交所有变化(是下面两个功能的合集(git add --all的缩写))2 git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)3 git add . 提交新文件(ne...
2018-10-09 10:56:06
2109
原创 栈与堆
内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。栈总是向下增长的,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限,通常有数兆字节的大小。(3) 从堆...
2018-04-09 16:23:37
150
原创 教训:malloc之前确认malloc的长度是否为0
教训:malloc之前确认malloc的长度是否为0导致问题:segment fault段错误的问题,这种问题很难寻找,所以要避免malloc(0),如果出现类似问题可以二分法加打印定位问题点。问题分析: 初始化在堆上malloc了一块区域,但是malloc()的size为0,这块地址被用来存了很多数据,数据依然可以使用,但是存的数据会将其他地址踩掉,就会在用其他地址的时候存在seg...
2018-04-09 16:01:50
2164
原创 隐式声明及编译选项不加-Werror导致的灾难
隐式声明及编译选项不加-Werror导致的灾难实验分析:两个.c文件: test.c源文件:#include <stdint.h>#include <stdio.h>char *test(void){ char *addr = NULL; addr = 0x334485667788; printf("[%s] addr = ...
2018-03-16 18:20:16
4178
原创 结构体字节对齐
结构体字节对齐结构体字节对齐什么是字节对齐为什么需要进行字节对齐字节是如何对齐的更改C编译器的缺省对齐方式__attribute__选项pragma pack示例什么是字节对齐 在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结
2018-01-23 17:14:22
564
原创 大小端如何理解记忆
大小端大小端背景常规理解轻松记忆示例背景 在不同的计算机系统中,数据的存储和读取有所不同,计算机的通信和存储依赖于一致的规则。目前计算机通常采用的存储机制主要有两种:大端模式(Big-endian)和小端模式(Little-endian)常规理解 大端模式:数据的低位或低字节(对整个序列取值影响最小的那个bit/byte)保存在内存的高地址中,而数据
2018-01-09 10:28:48
937
原创 Linux共享库
Linux共享库Linux共享库0 背景1 共享库版本11 共享库兼容性12 共享库版本命名13 SO-NAME2 符号版本3 共享库系统路径4 共享库查找过程5 环境变量6 共享库的创建和安装61 共享库的创建62 共享库的安装8.0 背景 由于动态链接库有很多优点,大量的程序开始使用动态链接机制,导致系统里面存在大量的共享对象。如果没
2018-01-09 09:39:57
450
原创 qt: The build directory needs to be at the same level as the source directory.
qt编译问题 The build directory needs to be at the same level as the source directory.Projects->General->Build directory 这个配置选项中的路径必须与源码同一级Tools->options->Build&Run->Default build directory
2017-12-11 16:54:17
7591
2
原创 Qt::Application::exec does not return exit code from Qt::Application::exit
概念理解不透侧导致,我们先看这两个API在Qt中的含义:void QApplication::exit ( int retcode = 0 ) [静态] 告诉应用程序退出,伴随一个返回代码。在这个函数被调用之后,应用程序离开主事件循环并且从exec()调用之后返回。exec()函数返回retcode。根据习惯,为0的retcode意味着成功,并且任何非零的值意味着错误。注意与同名的C库函数不
2017-12-11 16:41:19
728
原创 qwidget:cannot creat a qwidget without qapplication
遇到这种问题一般两种情况:有GUI界面:你的代码中用了QWidget的类,但是你main函数中用的不是QApplication,这个时候只需要将QGuiApplication或者QCoreApplication改为QApplication即可。产生这个错误的原因是这个QWidget 是建立在QApplication 上的。无GUI界面:这种情况的应用程序肯定是要用QCoreApplication
2017-12-11 15:31:58
4514
原创 Error on execution -version `Qt_5' not found required by
在调试qt项目时遇到的问题 这句error的意思是在/usr/lib/x86_64-linux-gnu/下找不到需要的这些库:libQt5Core.so.5、libQt5Widgets.so.5。。。解决方案 可以在~/.bashrc 或者 ~/.bash_profile 或者 /etc/bashrc 或者 /etc/profile 这四个文件中任选一个添加如下声明即可,其中LD_LIBRARY
2017-12-11 14:40:49
5881
原创 linux command
linux command记录下本人常用的linux命令提取出文件file中关键字相关的信息(-r 递归;-i 忽略大小写;-n 显示行号;-I 忽略二进制文件)grep -rin ‘XXX’ file grep -E “XXX|XXX” Linux kill掉卡死的程序ps -ef | grep -ie [name] pgrep [name]提取sourcefile文件中多个关键字相关信息
2017-12-07 21:28:49
295
原创 隐式声明与GCC内建函数
C语言隐式声明与GCC内建函数C语言隐式声明与GCC内建函数什么是C语言的隐式声明GCC内建函数隐式声明带来的灾难什么是C语言的隐式声明 在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子:#include <stdio.h>int main() { double x = no_declare_
2017-10-13 11:43:28
2612
原创 Linux ubuntu 14.04 x86_64平台 gcc编译错误 Error: unsupported instruction `mov' 及ld链接错误
1. 环境如下:$gcc -v: Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnugcc version: gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.
2017-09-27 14:42:25
8676
2
原创 Linux常用命令
Linux常用命令Linux常用命令ar1. ar 官方解释:ar - create, modify, and extract from archives 可以理解为:从压缩包中创建、修改、提取文件 Linux ar命令用于建立或修改备存文件,或是从备存文件中抽取文件。ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。-d 删除备存文件
2017-09-26 17:55:35
396
原创 GNU常用命令
GNU COMMANDGNU COMMANDgcc GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,功能强大。可以对源代码进行预处理、编译、汇编、链接等操作,最终生成我们需要的可执行文件。template: gcc [option] [parameter][option]null 当option不添加如下几个选项(-E -C -S -o),则直接编译生成
2017-09-22 18:11:32
1970
再再论指针-分析指针与数组的好文
2022-12-23
Run-time ABI for the ARM architecture
2019-03-26
QtCreator快速入门
2019-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人