![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
函数调用关系
xk_一步一步来
一步一步
展开
-
vim插件ctags的安装和使用
【ctags功能】: 为源码的变量/对象、结构体/类、函数/接口、宏等产生索引文件,以便快速定位。目前支持41种语言,这里仅以C/C++为例:ctags可以产生c/c++语言所有类型的索引文件,具体如下: -> class names(类名) -> macro definitions(宏定义) -...转载 2019-11-19 16:39:10 · 499 阅读 · 0 评论 -
如果使用Session.execCommand()方法,则每个session中只能执行一条命令
如果使用Session.execCommand()方法,则每个session中只能执行一条命令原创 2019-11-04 10:13:12 · 4115 阅读 · 4 评论 -
如何识别C++编译以后的函数名(demangle)
C/C++语言在编译以后,函数的名字会被编译器修改,改成编译器内部的名字,这个名字会在链接的时候用到。如果用backtrace之类的函数打印堆栈时,显示的就是被编译器修改过的名字,比如说_Z3foov 。 那么这个函数真实的名字是什么呢?每个编译器都有一套自己内部的名字,这里只是针对linux下g++而言。以下是基本的方法:每个方法都是以_Z开头,对于嵌套的名字(比如名字空间中的名字或者是类...转载 2019-11-03 15:12:35 · 1143 阅读 · 0 评论 -
mangle和demangle
C/C++语言在编译以后,函数的名字会被编译器修改,改成编译器内部的名字,这个名字会在链接的时候用到。将C++源程序标识符(original C++ source identifier)转换成C++ ABI标识符(C++ ABI identifier)的过程称为mangle;相反的过程称为demangle。ABIABI是Application Binary Interface的简称。C/C...原创 2019-11-03 13:28:09 · 2911 阅读 · 0 评论 -
在windows下使用vs2013编译和调试mysql源代码
1. 准备工作1)OS:win10 + VS20132)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604-MSWin32-x64-298023.msi4)Cmake:cmake-3.5.0-win32-x86 .exe5)Bison:bison-2.4.1-setup...转载 2019-10-28 17:46:21 · 321 阅读 · 0 评论 -
GCOV相关资料--金庆专题
https://blog.csdn.net/jq0123/article/category/210684gcov 统计 inline 函数:https://blog.csdn.net/jq0123/article/details/20129265gcov辅助脚本:https://blog.csdn.net/jq0123/article/details/39585623...转载 2019-10-17 10:48:16 · 132 阅读 · 0 评论 -
代码覆盖度工具OpenCppCoverage(cpp)
https://blog.csdn.net/quiet_girl/article/details/78075070一、OpenCppCoverage(cpp)OpenCppCoverage是一个运行在windows上的程序,其不是在编译时进行插桩,而是在运行时,因此保证了代码和测试的一致性。参考文档:https://github.com/OpenCppCoverage/OpenCppCove...转载 2019-05-28 16:10:50 · 1982 阅读 · 0 评论 -
C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)Jenkins
http://www.bubuko.com/infodetail-1090164.html关于代码覆盖率统计工具,Linux平台下,gcc内置支持gcov,通过编译时加参数选项,进行代码插桩,从而实现代码覆盖率。在Windows平台下,早在几年前,我还没找到特别好用又开源的覆盖率工具,所以以前公司是自己实现了一套,使用起来也不是很方便。 最近又遇到同样的问题,不过非常幸运的是,一款开源的Wi...转载 2019-05-28 16:35:20 · 1462 阅读 · 0 评论 -
gcov代码覆盖率测试-原理和实践总结
https://blog.csdn.net/yanxiangyfg/article/details/80989680目录一、gcov简介二、gcov过程概况三、使用gcov的3个阶段四、gcov检测代码覆盖率的原理五、服务程序覆盖率统计六、内核和模块的gcov代码覆盖率测试七、lcov工具使用八、info文件格式信息九、例子FAQ参考感谢 一、gcov简介gco...转载 2019-05-28 19:07:59 · 5636 阅读 · 2 评论 -
Windows下启动关闭MySQL的两种方式(服务模式/非服务模式)
https://blog.csdn.net/ucicno000/article/details/81977272现在MySQL的最新版本是8.0 ,虽然提到支持了JSON什么的性能很强,但你的系统如果很稳定还是不要变动,已踩过坑。此处使用 5.5.47进行测试;window服务模式启动mysql 的方式 比较稳定推荐的做法通过系统服务注册。如果你下载的版本是解压版本,可以进入my...转载 2019-05-28 19:27:31 · 2762 阅读 · 0 评论 -
Windows下编译MySQL 5.7源代码
前提准备======Visual Studio 2013:MySQL 5.7源代码:可以从这里下载: http://dev.mysql.com/downloads/mysql/ 下载的时候,选择Source Code安装CMake https://cmake.org/ 安装的时候,选择在PATH中加入安装Bison: http://gnuwin32.sourceforge.net/pa...转载 2019-05-28 20:25:25 · 1295 阅读 · 0 评论 -
Linux下的代码格式工具详解(indent, clang-format, astyle)
https://blog.csdn.net/gatieme/article/details/73692049 Linux下的代码格式工具详解 AderXCoding/system/tools/code_format1 indentindent 可辨识 C 的原始代码文件, 并加以格式化, 以方便程序设计师阅读.Linux kernel 有一个脚本 Lindent, 参见sc...转载 2019-05-29 14:41:01 · 864 阅读 · 0 评论 -
巧用Graphviz和pvtrace等工具可视化C函数调用
https://blog.csdn.net/occupy8/article/details/14450207from http://guiquanz.github.io/2012/10/15/linux_c_call_trace/在分析复杂的C/C++软件时,如果有一个工具可以便捷的生成“函数调用关系图”,不是一件很好的事吗?如果你庆幸是一个Javaer或钟爱基于IDE(如Ecl...转载 2019-05-18 19:18:03 · 807 阅读 · 0 评论 -
运行时转储gcov数据
https://stackoverflow.com/questions/14977285/dumping-gcov-data-at-runtime待检测程序的main函数加入该函数:#include <signal.h>#include <stdio.h>#include <stdlib.h>void __gcov_flush();static ...原创 2019-05-30 13:28:54 · 303 阅读 · 0 评论 -
180203 逆向-Win下PinTools编写
https://blog.csdn.net/whklhhhh/article/details/792759321625-5 王子昂 总结《2018年2月3日》 【连续第491天总结】 A. PinTools编写、win32程序的适配 B. 之前编译好了ManualExamples中的inscount,但是0、1、2的计算都很不准确,高达几百万且波动极大,所以没法通过例程的指令计数来爆破...转载 2019-05-23 09:18:36 · 644 阅读 · 0 评论 -
函数指针、回调函数、钩子函数
转自:https://blog.csdn.net/lipeionline/article/details/6369657例子:https://www.cnblogs.com/haore147/p/3647262.html 什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这...转载 2019-05-19 11:06:24 · 483 阅读 · 0 评论 -
Gprof
参考:https://blog.csdn.net/aneutron/article/details/49251921Gprof简介Gprof 是GNU gnu binutils工具之一,默认情况下linux系统当中都带有这个工具。Gprof给出了函数调用的次数、调用耗时以及函数的调用关系,通过分析产生的数据结果可以确定程序的执行流程,进而有针对性的对程序进行优化。功能可以获得的几种格式的...转载 2019-05-15 09:48:20 · 512 阅读 · 0 评论 -
Valgrind s callgrind
最初发表:泰晓科技 – 聚焦嵌入式 Linux,追本溯源,见微知著! 原文链接:源码分析:动态分析 C 程序函数调用关系 https://blog.csdn.net/tinylab/article/details/45051097准备需要事先准备好相关的工具。$ sudo apt-get install valgrind工具好了,再来一个典型的 C 程序,保存为:fib.c#inc...转载 2019-05-15 10:23:21 · 282 阅读 · 0 评论 -
使用gcc的-finstrument-functions选项进行函数跟踪
https://blog.csdn.net/jasonchen_gbd/article/details/44044899GCC Function instrumentation机制可以用来跟踪函数的调用关系,在gcc中对应的选项为“-finstrument-functions”。可查看gcc的man page来获取更详细信息。编译时如果为gcc加上“-finstrument-functions...转载 2019-05-15 15:56:43 · 1358 阅读 · 0 评论 -
用 Graphviz 可视化函数调用
https://www.ibm.com/developerworks/cn/linux/l-graphvis/转载 2019-05-15 17:03:41 · 1283 阅读 · 0 评论 -
C语言 目标文件和可执行文件(ELF文件)
转自:https://www.jianshu.com/p/7c609b70acbd 1.C语言创建程序1.1C语言创建(分为4个步骤)编辑编译链接执行编辑:就是创建和修改C程序的源代码-我们编写的程序称为源代码。编译:就是将源代码转换为机器语言。编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。(该部分编译是指汇编器编译汇编语言或者编译器编译...转载 2019-05-15 18:55:15 · 17111 阅读 · 3 评论 -
C语言实现时间差计算
在很多情况下,为了评判某个算法,函数的优劣,特别是比较同一个功能的两个函数的效率高低时,我们经常通过计算耗费时间作为判断标准。C语言中有两个相关的函数用来计算时间差,分别是:time_t time( time_t *t) 与 clock_t clock(void)头文件: time.h计算的时间单位分别为: s , ms time_t 和 clock_t 是...转载 2019-05-24 11:47:54 · 5832 阅读 · 0 评论 -
使用 ftrace 跟踪内核
转自:https://blog.csdn.net/qq_33487044/article/details/81750993使用 ftrace 跟踪内核在内核层面上分析事件有很多的工具:SystemTap、ktap、Sysdig、LTTNG 等等,你也可以在网络上找到关于这些工具的大量介绍文章和资料。而对于使用 Linux 原生机制去跟踪系统事件以及检索/分析故障信息的方面的资料却很少找的到...转载 2019-05-15 20:40:08 · 1471 阅读 · 0 评论 -
Pin
Pin 3.4 User Guidehttps://software.intel.com/sites/landingpage/pintool/docs/97438/Pin/html/Intel Pin基本用法:http://brieflyx.me/2017/binary-analysis/intel-pin-intro/Windows下使用二进制插装工具Pin:http://www.ai...原创 2019-05-21 20:46:45 · 353 阅读 · 0 评论 -
ubuntu 下没有pthread库以及报undefined reference to 'pthread_create'的解决方法
https://blog.csdn.net/xueyushenzhou/article/details/51206351最近在Ubuntu下编译一个程序,需要使用多线程库pthread,但是编译时总是提示“undefined reference to 'pthread_create'”的错误,如下图所示:要解决这个问题非常简单 。先说怎么解决。如果你使用的是gcc编译,或者将编译命令都写到...转载 2019-05-25 22:29:42 · 710 阅读 · 0 评论 -
如何快速查看将C反汇编的代码
https://www.cnblogs.com/jack204/archive/2011/12/02/2271884.html查看反汇编主要的思路在于将 流程,处理,算法 区分开来。1 函数调用:原C代码:int sum(int, int);int main(){ int c = sum(1, 2); printf("c=%d", c); return 0;}int sum...转载 2019-05-22 10:34:40 · 3090 阅读 · 0 评论 -
程序链接借鉴思路
pvtrace和Graphviz实现对linux下C程序的函数调用跟踪(2011):http://blog.chinaunix.net/uid-24567872-id-204396.htmlpvtrace和Graphviz实现对linux下C程序的函数调用跟踪(2014):http://blog.sina.com.cn/s/blog_67fcf49e0101m06u.htmllinux下追...转载 2019-05-17 20:05:15 · 206 阅读 · 0 评论 -
代码插桩
https://blog.csdn.net/woshidujian19881029/article/details/6558260 【转载】http://wiki.dzsc.com/info/5081.html 代码插桩是实现覆盖测试的关键技术之一,而高效的插桩技术对于嵌入式软件的测试来说又是至关重要的。在对CodeTeST 中插桩技术研究的基础上,以G...转载 2019-05-19 09:33:16 · 3468 阅读 · 0 评论