自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chasing Freedom

学而不思则罔 思而不学则殆

  • 博客(42)
  • 资源 (2)
  • 收藏
  • 关注

原创 crash问题常用分析方法

1. 什么是crash?代码异常导致进程退出的现象2. 为什么会crash?访问堆、栈上的异常地址3. 平时调试或者客户端遇到crash问题,如何分析,是否有具体的方法?目前常用的有三种分析手段

2023-10-24 19:53:52 196

原创 用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

在此记录并share用了7年的 source insight 3.5 背景色及字体配置,提升阅读代码效率

2023-06-07 11:57:27 3585

原创 Geany 尝试访问以另一用户身份运行的另一实例的 Unix Domain socket

ubuntu下查看日志一直用的geany工具,结果最近打开报错“

2023-05-12 11:58:26 145

原创 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 1042

原创 我对面向对象编程的一些理解

面向对象编程是一种编程模式,将需用到的数据类型、方法定义为类,涉及数据封装、继承、多态等

2022-12-23 15:20:07 468

原创 arm汇编指令——分析问题的利器

分析问题中会涉及到看反汇编代码,通过反汇编code推断代码逻辑,从而更快更准确定位问题点,所以学会看反汇编代码是必要的。

2022-12-20 17:47:40 2000

原创 【年终总结的关键点】

个人工作总结,是对过去一年做了什么,什么做好了,什么没做好,也是对下一年怎么做的更好的提前规划。年终总结,是给老板一个交代,更是给自己做一个全年的复盘。所以,年终总结,不仅应该让领导满意,更需要自己满意。如果自己不满意,就需要做出变化总结维度:领导满意:我提供了什么价值?站在领导角度看,对你的期望是否达成?自己满意:我获得了什么收获和成长?有哪些做的不好的?找到自己主导项目的核心关注点,在关键点上做的如何?项目亮点PPT形式精简,不繁琐,不关注细节数据支撑。

2022-12-12 12:14:06 169

原创 什么是引用?

什么是引用,你真的理解引用的本质么?

2022-10-29 01:52:54 130

原创 指针与数组——你真的懂么?

你真的懂指针与数组么?带你更深入了解指针与数组

2022-10-24 17:06:58 625

原创 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 4253

原创 大话设计模式之装饰模式(python实现)

大话设计模式之装饰模式使用场景定义装饰模式结构图python实现装饰模式代码结构图使用场景建造过程不稳定,不确定。把所需的功能按照正确的顺序串联起来进行控制定义动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活装饰模式结构图Component是定义一个对象接口,可以给这个对象动态添加职责,对应下文python实现中的Persion类Decorator继承Component类,是通过具体装饰类抽象出来的一个类,对应下文python实现中的Finery类Concr

2021-11-09 16:44:41 705

原创 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 370

原创 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 1959

原创 统计栈大小及优化方法

统计栈大小及优化方法文章目录统计栈大小及优化方法问题背景分析方法解决方案问题背景栈溢出导致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 1769 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 6109 8

原创 通过Jenkins Script Console批量修改Jenkins任务

文章目录遇到了什么问题?如何高效解决具体解决方案小结遇到了什么问题?Jenkins在运行过程中会生成很多结果文件,时间一长,其所占用的磁盘空间就越来越大,Jenkins 所在的服务器就会经常报硬盘空间不足。一个个手动删除效率太低,有没有更好的解决方案呢?如何高效解决那就是Script Console,可以批量修改Jenkins所有项目的job,大大提升工作效率,减少繁琐的手动操作具体解决方案四步走策略:遍历所有项目找到每个项目各自最大的构建编号maxNumber最大构建编号 - 10,得

2021-01-19 10:55:54 1092

原创 又遇隐式声明的大坑,本篇阐述让你:透过现象看到本质

又遇隐式声明的大坑什么是隐式声明实验分析总结什么是隐式声明在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 248 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 364

原创 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 1589 5

原创 目录操作高手是如何炼成:dirs & pushd & popd

文章目录前言命令简述dirs使用pushd使用popd使用前言Linux系统中,我们在目录之间切换一般使用cd命令,cd虽然可在目录之间来回切换,但是cd的效率太低,进入之后退出需要反复输入路径;那有没有一种高效简单的目录操作命令?答案是肯定的,那就是:pushd &amp; popd命令简述dirs:显示当前所在目录以及目录栈的内容pushd(push dir): 将目录压入目...

2019-03-08 11:47:09 199

原创 大小端转换源码

背景在不同的计算机系统中,数据的存储和读取有所不同,计算机的通信和存储依赖于一致的规则。目前计算机通常采用的存储机制主要有两种:大端模式(Big-endian)和小端模式(Little-endian)大下端常规定义大端模式:数据的低位或低字节(对整个序列取值影响最小的那个bit/byte)保存在内存的高地址中,而数据的高位或高字节,存储时放在低地址,读取时放在流开始。这样的存储模式有点儿类似...

2019-03-07 15:18:15 1265

原创 C语言读取和存储bmp格式图片

开发过程中有时候需要解析bmp数据,下面先简单介绍bmp数据组成,后面附上C语言读取和存储bmp格式图片代码。典型的位图文件格式通常包含下面几个数据块:BMP文件头:保存位图文件的总体信息。位图信息头:保存位图图像的详细信息。位图信息:保存位图图像的详细信息。调色板:保存所用颜色的定义。调色板:保存所用颜色的定义。位图数据:保存一个又一个像素的实际图像。位图数据:保存一个又一个像素的实...

2019-02-22 17:40:15 9519 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 1418

原创 栈与堆

内存分配方式有三种: (1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2)在栈上创建。栈总是向下增长的,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限,通常有数兆字节的大小。(3) 从堆...

2018-04-09 16:23:37 127

原创 教训:malloc之前确认malloc的长度是否为0

教训:malloc之前确认malloc的长度是否为0导致问题:segment fault段错误的问题,这种问题很难寻找,所以要避免malloc(0),如果出现类似问题可以二分法加打印定位问题点。问题分析:  初始化在堆上malloc了一块区域,但是malloc()的size为0,这块地址被用来存了很多数据,数据依然可以使用,但是存的数据会将其他地址踩掉,就会在用其他地址的时候存在seg...

2018-04-09 16:01:50 2047

原创 隐式声明及编译选项不加-Werror导致的灾难

隐式声明及编译选项不加-Werror导致的灾难实验分析:两个.c文件: test.c源文件:#include &lt;stdint.h&gt;#include &lt;stdio.h&gt;char *test(void){ char *addr = NULL; addr = 0x334485667788; printf("[%s] addr = ...

2018-03-16 18:20:16 4085

原创 结构体字节对齐

结构体字节对齐结构体字节对齐什么是字节对齐为什么需要进行字节对齐字节是如何对齐的更改C编译器的缺省对齐方式__attribute__选项pragma pack示例什么是字节对齐  在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结

2018-01-23 17:14:22 472

原创 大小端如何理解记忆

大小端大小端背景常规理解轻松记忆示例背景  在不同的计算机系统中,数据的存储和读取有所不同,计算机的通信和存储依赖于一致的规则。目前计算机通常采用的存储机制主要有两种:大端模式(Big-endian)和小端模式(Little-endian)常规理解  大端模式:数据的低位或低字节(对整个序列取值影响最小的那个bit/byte)保存在内存的高地址中,而数据

2018-01-09 10:28:48 737

原创 Linux共享库

Linux共享库Linux共享库0 背景1 共享库版本11 共享库兼容性12 共享库版本命名13 SO-NAME2 符号版本3 共享库系统路径4 共享库查找过程5 环境变量6 共享库的创建和安装61 共享库的创建62 共享库的安装8.0 背景  由于动态链接库有很多优点,大量的程序开始使用动态链接机制,导致系统里面存在大量的共享对象。如果没

2018-01-09 09:39:57 401

原创 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 6702 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 644

原创 qwidget:cannot creat a qwidget without qapplication

遇到这种问题一般两种情况:有GUI界面:你的代码中用了QWidget的类,但是你main函数中用的不是QApplication,这个时候只需要将QGuiApplication或者QCoreApplication改为QApplication即可。产生这个错误的原因是这个QWidget 是建立在QApplication 上的。无GUI界面:这种情况的应用程序肯定是要用QCoreApplication

2017-12-11 15:31:58 3561

原创 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 5612

原创 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 240

原创 隐式声明与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 2233

原创 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 8300 2

原创 Linux常用命令

Linux常用命令Linux常用命令ar1. ar  官方解释:ar - create, modify, and extract from archives   可以理解为:从压缩包中创建、修改、提取文件   Linux ar命令用于建立或修改备存文件,或是从备存文件中抽取文件。ar可让您集合许多文件,成为单一的备存文件。在备存文件中,所有成员文件皆保有原来的属性与权限。-d 删除备存文件

2017-09-26 17:55:35 326

原创 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 1754

原创 设计模式——外观模式和备忘录模式

设计模式之外观模式和备忘录模式设计模式之外观模式和备忘录模式外观模式备忘录模式外观模式概述   外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。   为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。引入外观角色之后,用户只需要直接与

2017-09-22 12:35:15 332

原创 gcc -g option flag

gcc -g option flag官方解释: Options for Debugging Your Program or GCC GCC has various special options that are used for debugging either your program or GCC:-g Produce debugging information in th

2017-09-22 11:21:55 615

用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

用了7年的 source insight 3.5 背景色及字体配置(提升code效率)

2023-06-07

再再论指针-分析指针与数组的好文

指针是 C 语言规范里面一项核心内容,指针具有与生俱来的优势,利用指针 可以写出许多短小精悍、效率极高的代码,它是 C 语言一把无可替代的利器,凭 着这把利器,C 语言与其它高级语言相比至少在效率方面高人一筹。但是,由于 指针的原理与使用方式跟人们通常的思维习惯有较大的差别,造成了指针比 C 语言其它概念难理解得多,这使得对指针认识不足成为了一种在 C 程序员中普遍 存在的现象,这种不足必然导致程序员在指针的使用过程中不断遭受挫折,挫折 多了,指针俨然变成一道无法逾越的难关,恐惧感也就油然而生了。在恐惧感面 前,某些程序员甚至产生了要避免使用指针的念头,这是非常不可取的。指针是 如此犀利,正是它才使得 C 语言威猛无比,如果就这样把它放弃了,那么 C 语言 就算是白学了。我们应当让指针成为你手中那把砍掉索伦手指上魔戒的举世无双 的纳西尔圣剑,而不是成为你心中永远的魔戒。

2022-12-23

Run-time ABI for the ARM architecture

针对ARM体系结构的应用二进制接口。用于针对 ARM 体系结构的应用程序二进制接口 (ABI) 的 ARM 文档集,这些接口包括 ARM 过程调用标准 (APCS)、ARM ELF、ARM DWARF、基础平台 ABI (BPABI)、C++ ABI、异常处理 ABI、运行时 ABI 和 C 库 ABI。

2019-03-26

QtCreator快速入门

本书是基于Qt creater集成开发环境的入门书籍,详细介绍了Qt creater开发环境的使用和Qt基本知识的应用。本书内容全面,实用,讲解通俗易懂,适合没有Qt编程基础,有Qt编程基础但是没有形成知识框架以及想学习Qt某一方面应用的读者。

2019-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除