2 weixin_41041321

尚未进行身份认证

暂无相关简介

等级
TA的排名 16w+

链接选项Bsymbolic

问题描述回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~原因应用程序进行链接的...

2018-11-01 09:35:48

gcc -Wl,--wrap,malloc 替换系统函数

GNU链接器就提供了一个好用的方法:–wrap=symbol函数名为“__wrap_symbol”,且称其为包装函数,“symbol”是一个函数名,大致执行过程是这样的:当调用“symbol”函数时,如果“symbol”函数未定义的话就会调用“__wrap_symbol”函数;“__real_symbol”也是个相关的函数,当其只声明不定义的话,我们对其的调用将调用真正的“symbol”函...

2018-10-26 14:17:27

kthread/waitqueue/tasklet/set_bit

•Softirq是中断下半部的处理方式(可以在不同cpu上同时运行)•tasklet是基于softirq实现的,使用比softirq简单.不能在不同cpu上同时运行,但是不同cpu可以运行不同的tasklet.•vk_tasklet_init (&pstDecObj->stDecTasklet ,pstDecObj->pfnHandleDecodeDone, (unsigned l

2018-01-16 14:27:20

python 使用opencv 把视频 分割成图片

#--coding:utf-8--import cv2#图像路径名字错误不提示im=cv2.imread("timg.jpg",cv2.IMREAD_GRAYSCALE)cv2.imwrite('res.jpg',im)'''cap=cv2.VideoCapture("1EF5013E37956E7EF2D5F935B6107F34.mp4")while True:

2017-12-31 20:25:12

python 使用 imagehash 和 distance 相似图片识别

#--coding:utf-8--from PIL import Imageimport imagehashimport distancefunct_hash=imagehash.phashpil_im=Image.open(r"timg.jpg")stepx=64stepy=64print pil_im.sizeoneitem=[]res_box=[]'''d

2017-12-31 20:18:28

hook glibc

我们知道,Linux的用C库的都是glibc,有一个叫libc.so.6的文件,这是几乎所有Linux下命令的动态链接中,其中有标准C的各种函数,默认情况下,linux所编译的程序中对标准C函数的链接,都是通过动态链接方式来链接libc.so.6这个函数库的。这也意味着我们在通过我们注入的.so来实现函数覆盖劫持之后需要从libc.so.6中取得原本的正常函数,让程序继续正常执行正常程序m

2017-12-12 11:33:28

记录一次 linux kernel bug

[2017-07-28  12:07:43:423][160290.942415] ------------[ cut here ]------------[2017-07-28  12:07:43:423][160290.947109] kernel BUG at fs/ext4/mballoc.c:3728![2017-07-28   12:07:43:423][160290.9518

2017-12-06 10:26:56

nltk_data 离线安装

windows 默认搜索路径  Searched in:    - 'C:\\Users\\xa00010/nltk_data'    - 'C:\\nltk_data'    - 'D:\\nltk_data'    - 'E:\\nltk_data'    - 'C:\\Python27\\nltk_data'    - 'C:\\Python27\\lib\\nl

2017-12-06 10:26:29

使用静态busybox 性能提升, 确一直coredump 的问题

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/include/asm/processor.h?id=acfdd4b1f7590d02e9bae3b73bdbbc4a31b05d38经分析需要kernel 打patch

2017-12-06 10:26:10

python requests 库 跳过ssl 验证

# -*- coding: utf-8 -*-import requestsimport sysreload(sys)sys.setdefaultencoding('utf-8')#import ssl#ssl._create_default_https_context = ssl._create_unverified_contextproxy_handler = {'http':

2017-12-06 09:37:50

使用valgrind 检查内存 泄露 等问题

export VALGRIND_LIB=/data/build.so/lib/valgrind/cd /data/build.so/bin./valgrind --tool=massif--threshold=0.000001 --time-unit=B --trace-children=yes --time-unit=B--trace-children-skip=*pangu,SCLR*

2017-12-05 11:26:36

记录一次系统调用慢的 分析过程

收到问题jira描述•   •      [EM] 0131559] [工厂适应性问题]执行shell命令,系统反应慢•      分析发现调用系统system函数执行命令的时间过长,每条命令执行约250ms。对比其它平台只需要

2017-12-05 11:21:19

使用facebook infer 进行代码审查

http://fbinfer.com/docs/getting-started.htmlhttp://fbinfer.com/docs/hello-world.html

2017-12-05 11:10:21

使用trace-compass 分析 lttng 抓取的结果

2. http://archive.eclipse.org/tracecompass/doc/org.eclipse.tracecompass.doc.user/Trace-Compass-Main-Features.html             此工具可以直接下载3. trace-compass-3.0.0-20170614-1849-win32.win32.x86_64 

2017-12-05 11:06:50

观察中断情况, 绑定 指定的cpu

void* threadfunction (){cpu_set_t mask;CPU_ZERO(&mask);CPU_SET(0,&mask); 第一个参数是你要绑定的cpu if(-1 == pthread_setaffinity_np(pthread_self() ,sizeof(mask),&mask)) { fprintf(stderr, "pthread_

2017-12-05 10:55:06

进程 线程 优先级调整方法

1. nice   优先级的范围为-20~ 19 等40个等级,其中数值越小优先级越高,数值越大优先级越低,既-20的优先级最高, 19的优先级最低2. chrt 命令chrt  -p  -r   50         调整成RR   50 chrt  -p    是查询 chrt  -p  -o   0          调整成other

2017-12-05 10:51:15

记录一次 busybox 死机

(gdb) bt#0  0x0009be32 in ____strtoll_l_internal ()#1  0x0009b7b4 in strtoq ()#2  0x0006c3d2 in mdev_main(argc=, argv=) atutil-linux/mdev.c:1116#3  0x0002f18c in run_applet_no_and_exit(applet_

2017-12-05 10:34:40

使用cgroup 分配 cpu 资源给各个进程

mkdir /cgroupmount -t cgroup -o cpu cgroup /cgroupmkdir /cgroup/GroupAmkdir /cgroup/GroupBfor iii in `pidof sitatvservice`do echo $iii > /cgroup/GroupA/tasksdonefor iii in `pidof appman

2017-12-05 10:31:28

使用 mmap64 和 /dev/mem 访问物理内存

static int _STBC_function_open(void){ //int fd; fdmem = open("/dev/mem", O_RDWR|O_SYNC); if (fdmem == -1) { printf("open dev mem error \n"); return (-1); } #define KER_STBC_REG_BA

2017-12-05 10:17:48

python 遍历 程序 动态库依赖 ,减少不必要依赖,减少启动时间

遍历 程序 动态库依赖 ,减少不必要依赖,减少启动时间

2017-12-05 10:12:23

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!