![](https://img-blog.csdnimg.cn/37918ea799ad4d388f6d76c6aa6d09cf.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
工具及使用经验
文章平均质量分 84
平时所用工具、调试代码、编码等工作经验总结
yelvens
我很懒,什么都没留下…
展开
-
使用Makefile笔记总结
GNU的make很强大,它具有一些隐晦规则,可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个.o文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个.o文件,它就会自动的把.c和.h文件加在依赖关系中,如make找到一个print.o,那么print.c和print.h,就会是print.o的依赖文件,并且 cc -c print.c 也会被推导出来。原创 2023-05-23 17:16:55 · 1259 阅读 · 1 评论 -
使用Shell笔记总结
6、使用readonly可以将变量定义为只读变量,只读变量就是一个常量。unset 命令可以删除变量,变量被删除后不能再次使用,不能删除只读变量。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小,数组元素的下标由 0 开始。等,可以保有其符号代表的特性,即可以有变量、转移字符;3、在一串指令的执行中,还需要藉由其他额外的指令所提供的信息时,可以使用反单引号。原创 2023-04-01 17:33:59 · 1768 阅读 · 0 评论 -
使用readelf和objdump查看ELF常见段
就是就是将几个输入目标文件加工后合并成一个输出文件,整个链接过程分两步:空间与地址分配、符号解析与重定位。的3大步骤:启动动态链接器本身 → 装载所有需要的共享对象 → 重定位和初始化。中对这些段又做了详细的解释,用到的时候只需查询即可。中给出了其中常见的段,解释了每个段的含义和用途。查看数据段相关的值需要。查看代码段相关的内容只需要。将16进制打印出来;原创 2022-11-02 13:14:56 · 7314 阅读 · 0 评论 -
使用Git常用操作命令
主要参考自链接:https://git-scm.com/docshttps://www.runoob.com/git/git-basic-operations.htmlhttp://marklodato.github.io/visual-git-guide/index-zh-cn.htmlhttps://www.cnblogs.com/miracle77hp/articles/11163532.htmlhttps://www.cnblogs.com/cb0327/p/5066685.htmlht原创 2021-12-15 16:32:47 · 2015 阅读 · 2 评论 -
使用Docker常用命令总结
docker常用操作1. 获取一个新的镜像:2. 查找镜像:3. 更改默认仓库地址:4. 列出镜像列表:docker images5. 删除镜像:6. 设置镜像标签:7. 更新镜像:8. 构建镜像:9. 使用镜像创建一个容器:10. 查看容器列表:11. 启动容器:12. 停止容器:13. 进入容器:14. 退出容器(容器还在):15. 删除容器:16. 传送文件:1. 获取一个新的镜像:当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使原创 2021-12-01 14:15:59 · 1082 阅读 · 0 评论 -
使用GCC编译程序常用命令
一、编译器驱动程序首先梳理一下源文件到可执行文件的整个过程,下面是两个源文件的组成main.c和sum.c// main.cint sum(int *a, int n);int array[2] = { 1, 2 };int main() { int val = sum(array, 2); return val;}// sum.cint sum(int *a, int n) { int i, s = 0; for (i = 0; i < n; i++) { s += a原创 2021-11-12 08:54:04 · 18863 阅读 · 0 评论 -
使用GDB(三):调试程序反汇编方法
一、LuaJitLuaJit是lua语言的虚拟机,用来运行lua代码,同java虚拟机JVM运行java一样,有两种执行模式,解释模式和即时编译模式。解释模式:将lua source 解析生成byte code,然后同一般解释器一样把byte code一个一个的进行解析执行。但是有同一般解释器不一样的地方,LuaJit的作者搞了个叫DynASM的工具,通过DynASM预处理可以把汇编指令变成可执行的二进制码,所以解释模式解释执行byte code的逻辑是用汇编写的,如下:|//符合DynASM语法的原创 2021-10-18 15:56:00 · 7312 阅读 · 0 评论 -
使用GDB(二):调试程序常用命令
一、启动程序run,简写r:运行被调试的程序。如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处start:开始调试,停在第一行代码处二、改变控制流程next,简写n:执行一行源程序代码,此行代码中的函数调用也一并执行,(gdb) n,(gdb) n line-numberstep,简写s:执行一行源程序代码,如果此行代码中有函数调用,则进入该函数,(gdb) s,(gdb) s line-numbercontinue,简写c:继续执行被调试程序,直至下一个断原创 2021-10-09 16:22:24 · 3668 阅读 · 0 评论 -
使用GDB(一):分析core.xxx文件常用方法
同事写的一个小文档,分享出来没毛病!一、背景说明存储过程或者UDF是Java调用pfds库进行函数计算,pfds库是由LLVM+C++实现的动态库,因此,出现问题时往往会产生core.xxx文件,Java对这种问题的分析比较困难,仍然需要使用gdb命令分析core dump文件。二、指令建议gdb core.xx调试某个core dump文件,比如gdb core.19122set solib-search-path 目录设置其他依赖库,类似Java需要其他依赖的Jar一样,需要设置其他依.原创 2021-03-15 17:39:02 · 26032 阅读 · 2 评论 -
Vim使用(二)——插件管理器vundle及常用插件
内容如下:vim插件管理器。vim的基本及进阶配置。ctags插件,追踪源码位置。一、vim插件管理器。插件管理器可以方便管理vim插件的安装、更新、删除等操作,常用的vim插件管理器有vundle和vim-plug,两者选其中一个即可。我们的系统中有vundle,所以不需要下载vundle,只需要配置即可。使用vundle的主要步骤,参考链接:https://zhuanlan.zhihu.com/p/344780591)下载vundle到指定目录。cd ~/.vim/bundle/Vu原创 2021-09-18 16:35:06 · 3427 阅读 · 0 评论 -
Vim使用(一)——常用技巧及快捷键总结
普通用户的vim配置在。```shellset mouse-=asyntax on "语法高亮set nocompatible "去除VI一致性,必须要添加set nu "显示行号set autowrite "自动保存set ruler "打开状态栏标尺set cursorline "突出显示当前行set smartindent "开原创 2022-08-18 21:07:11 · 1208 阅读 · 0 评论 -
Linux常用命令总结
vim编译一个文件vim filename进入到文件的后光标处于上次退出时的位置vim +行号 filename进入文件后光标处于指定行的首位置vim + filename进入文件后光标处于最后一行的首位置原创 2020-07-24 10:02:28 · 1411 阅读 · 1 评论