04 2023 档案
摘要:首先建立a.c, 为待优化的bin。 //a.c int fun(int x) { if(x>5) return x+1; else return x-1; } int main() { int ans = 0; for(int i=0; i<100000000; i++) ans += fun(i
阅读全文
摘要:googletest的目录在的官方目录在https://github.com/google/googletest.git。 作为用户,googleTest的库可以认为提供了两个东西,头文件和库: 头文件中有各种宏。如TEST, TEST_F,通过#include "gtest/gtest.h",即可
阅读全文
摘要:关于gcc设置入口函数的讨论 一般的程序入口函数是_start(不是main,参考【2】)。 如果我们想在main之前做点啥工作,或者希望链接一个项目的main.o对象,就需要另外指定入口函数。 虽然gcc提供了指定入口函数的参数,但我发现往往不是我们想要的。 gcc的指定入口函数参数 gcc提供了
阅读全文
摘要:如何找程序用到的配置文件路径 工作中遇到一个问题。gdb中打印了一个信息, add 'set debuginfod enabled off' to .gdbinit 于是问题来了,这个.gdbinit文件在哪?怎么找到这个文件去添加配置呢? 想到学习的运行时打桩技术,心中便生出一计:对open函数
阅读全文
摘要:gcc 链接时打桩 链接时打桩简单分析 链接时打桩本质是在重定位解析符号的时候,做了手脚。 假设main.o用到外部符号malloc,malloc的定义本来在libc中,直接链接给定-L/path/to/libc.so -lc, main.o中malloc的地址就链接到了libc.so中的符号。 链
阅读全文