- 博客(175)
- 资源 (6)
- 收藏
- 关注
原创 LLVM指令选择中的模式定义方法
目标指令选择目标指令选择阶段会把后端td文件里面的DAG模式和selection DAG的节点相匹配如果找到一个匹配,则匹配的节点会被有具体机器指令(或者伪指令)的节点代替。因此你的td模式的指令对于生成好的代码很重要,因此你需要话费很多时间来调试这些模式。理解pat用法模式的record记录从llvm的pat类继承,这个pat类有两个参数,第一个参数是要匹配模式的dag,第二个参数是机器指令的dag,当模式匹配了dag中的一些节点时,匹配的节点会被第二个参数中的dag替换。接下来要使用一些
2021-08-19 20:16:40 1378
原创 vscode-server离线安装插件
问题描述近期需要离线为远程的开发机安装vscode插件,具体方法如下code --extensions-dir ~/.vscode-server/extensions/ --install-extension ~/eamodio.gitlens-11.6.0.vsix
2021-07-21 16:10:06 2221
原创 flamegraph No stack counts found. 问题
flamegraph No stack counts found.问题问题)最近用flamegraph.rs进行采样时遇到栈损坏问题,查找了半天发现是perl版本的问题,执行:sudo apt-get upgrade perl
2021-07-14 08:51:03 3550
原创 自己编译gcc遇到的小问题cannot find crt1.o
其实之前已经编译很多次gcc,都没有问题但是这次在64位Ubuntu虚拟机里面编译遇到了一些问题。简单记录一下。config的log里面报错是cannot find crt1.o这个直接想到是路径不对,找不到,但是做了符号链接还是找不到。后来发现有这么一句话checking ABI=32 这意味着这样配置编译出来的二进制ELF一定都是32位的,怪不得这时候后来报的说
2017-04-01 10:55:36 28182 3
原创 ubuntu多版本gcc切换
首先第一个把几个一起更新的放在一起```sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 100 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6``````sudo update-alternatives --install /usr/bin/gcc gcc /usr
2017-03-21 16:34:10 903
转载 MAC下Basictex如何安装宏包
40down voteacceptedIn Mac OS X (Snow Leopard 10.6.7) put your .sty file in/usr/local/texlive/2010basic/texmf-dist/tex/latex/base/Then, run texhash command. Don't forget to stay
2015-11-21 17:39:15 5158
原创 如何对程序的栈进行保护————x86_64
如何对程序栈进行保护,当要控制程序执行过程,需要先保护栈。然后执行要执行的代码,最后恢复栈保护基本方法为:pushq %rsppushq (%rsp)andq $-0x10, %rsp执行要执行的代码movl 8(%rsp), %rsp
2015-07-10 09:04:18 981
转载 windows python install pygtk
windows上安装gtk是一个老大难问题,特别是windows 64下面转载一个文章,立斩所有麻烦http://digitalpbk.blogspot.com/2012/03/installing-pygtk-pypango-and-pycairo-on.htmlTo install pygtk, pypango and pycairo on Windows,
2015-07-07 10:42:57 1852
转载 RTL8111/RTL8168 Network Connection Fix
http://ubuntuforums.org/showthread.php?t=1022411This is guidance for those with integrated Realtek RTL8111 series gigabit Ethernet, built in to motherboards such as the ASRock G41M-LE.Ubun
2015-06-19 12:38:36 1330
转载 numpy解方程
ExamplesSolve the system of equations 3 * x0 + x1 = 9 and x0 + 2 * x1 = 8:>>>>>> a = np.array([[3,1], [1,2]])>>> b = np.array([9,8])>>> x = np.linalg.solve(a, b)>>> xarray([ 2., 3.])
2015-06-15 22:04:01 8321
原创 CPU 出现soft lockup的解决办法
近期在服务器跑大量高负载程序,造成cpu soft lockup。如果确认不是软件的问题。采用下面的解决办法。echo 30 > /proc/sys/kernel/watchdog_thresh
2015-06-14 19:29:55 45008 4
转载 为x86 64体系结构添加系统调用
转载自http://blog.chinaunix.net/uid-23024886-id-2570340.html之前,为32位的x86添加系统调用。现在因为研究的需要,要在64位的x86添加一个系统调用。STEP 1: 在arch/x86/include/asm/unistd_64.h,添加#define __NR_test1 300__SYS
2015-06-14 14:37:09 848
转载 NAS Parallel Benchmarks tips
NAS Parallel Benchmarks tipsNAS Parallel Benchmarks are some of the most common used set of benchmarks for HPC systems. Description and download can be found here.One of the problems I came acro
2015-06-11 18:55:48 1028
原创 windows下python画图matplotlib
1. python 标准包2. 找到pip路径,加入到PATH里面3. pip install wheel4. pip install numpy-1.9.2.whl5. pip install matplotlib-1.4.3.whl
2015-06-11 10:42:54 1076
转载 测量系统调用开销
https://courses.cs.washington.edu/courses/cse551/07sp/programming/assign1/measure_syscall.c// Copyright 2007 Steven Gribble#include #include #include #include #include #include // only
2015-06-10 10:30:16 838
原创 gem5配置
export CC=/home/zhuguoliang/softwareinstall/gcc-4.7.4/bin/gccexport CXX=/home/zhuguoliang/softwareinstall/gcc-4.7.4/bin/g++export PYTHONPATH=/home/zhuguoliang/softwareinstall/python-2.7.9/export
2015-06-09 21:40:01 939
转载 tar
转载自http://www.xiaoxiaozi.com/2009/05/23/600/压缩成gzip文件:tar -zcvf shell.tar.gz shell/将gzip文件解压:tar -zxvf shell.tar.gz压缩为bz2文件:tar -jcvf shell.tar.bz2 shell/将bz2文件解压:tar -jxvf
2015-05-07 13:13:06 424
转载 centos ext4 rescue
How to mount LVM partitions from rescue mode (Fedora/CentOS/RedHat)October 25th, 2011 Posted in Documentation Write commentBoot your rescue media.Scan for volume groups:# lvm vgsca
2015-05-07 09:37:33 784
原创 使centos6.x登陆之前就能联网
发现centos6.x机器开机不能自动把网络打开,导致我ssh不上去,每次还要自己去到机器上登陆,这样远程就没法重启了。所以survey如下:vim /etc/sysconfig/network-scripts/ifcfg-System_eth0 下面这一项BOOTPROTO的默认值是none,直接改成staticBOOTPROTO=static保存即可
2015-04-29 22:41:53 816
转载 GRUB Error 28: Selected item cannot fit into memory 解决方法
OK, for anyone else who might come across this, here is the solution:Go to the console and type dmesg > filenameofyourchoice.txtExamine filenameofyourchoice.txtFind this section (was at th
2015-04-02 15:20:32 12987
原创 Coming soon....
https://fgiesen.wordpress.com/2013/02/17/optimizing-sw-occlusion-culling-index/
2015-03-25 16:00:51 586
转载 Linux System Call Table for x86_64
Linux System Call Table for x86_64原地址http://blog.rchapman.org/post/36801038863/linux-system-call-table-for-x86-64Linux 3.19, x86_64Note: 64-bit x86 uses syscall instead of interr
2015-03-12 10:01:04 2042
翻译 如何向一个正在运行的linux应用插入代码
原文地址:http://www.codeproject.com/Articles/33340/Code-Injection-into-Running-Linux-Application介绍假设你的程序在linux上运行,未来的很长一段时间也不想要终止运行,例如unix守护进程。然而你想要通过一个简单的方式来升级这个程序,但是却不想要终止程序的执行。这是你想到的就是在你的程序中更新一些已知的
2015-03-10 22:25:10 1237
原创 redhat查看处理器各核的使用情况
mpstat 2 5 Display five reports of global statistics among all processors at two second intervals.mpstat -P ALL 2 5 Display five reports of statistics for all proces
2015-03-04 20:56:15 1090
转载 如何审稿---转自小木虫 作者 waitingYHVH
虽然这是一篇讲述如何审稿的文章。但是在这个其中,你也很容易看出来,审稿人注意的那些文章中的点。建议自己写好文章后,都能对照着好好看看。自己好好修改好了,再投出去。当然这对于有审稿邀请的朋友也是可以参考的内容帮助你如何恰当的当一个合格的审稿人。原文how to review,转自 http://web.njit.edu/~bieber/review.html-------
2015-02-27 00:56:05 2775
原创 perf uncore PEBS
About perf从2.6.31版本开始,linux内核开始提供了一个正式接口来管理硬件计数器,这个接口就是通过系统调用“perf_event_open” , 同时内核还提供了一个用户层次的工具来利用这个接口,也就是perf。perf有两种可用的模式:计数和采样。计数简单的在整个程序执行的过程中测量发生的事件数目而不会考虑到底是哪些指令或者是哪些函数造成了这些事件的产生。
2015-02-04 20:53:13 1871
转载 yum 重复安装问题
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:python-2.6.6-37.el6_4.x86_64 is a duplicate with python-2.6.5-3.el6.x86_64----------------------------------------重
2015-01-29 10:08:41 13342
原创 从能效看移动设备体系结构趋势
为满足现在的应用的增长的计算需要,移动处理器通常具有强大的GHZ的核,并且具有丰富的体系结构特性。但是这些强大的处理器核在执行轻量级任务的时候能效很低,这个能效低下有三个来源:1. 由于进入与退出active power state带来的高开销。由于强大的大核通常不活动,小型任务的周期性运行会不可避免的唤醒大核执行2. 高空闲功耗。在IO受限的小型任务,强大的核会有很多周期是空闲的
2015-01-27 21:29:42 802
转载 Python模块学习 ---- subprocess 创建子进程
最近,我们老大要我写一个守护者程序,对服务器进程进行守护。如果服务器不幸挂掉了,守护者能即时的重启应用程序。上网Google了一下,发现Python有很几个模块都可以创建进程。最终我选择使用subprocess模块,因为在Python手册中有这样一段话: This module intends to replace several other, older modules and fun
2015-01-27 21:19:22 699
转载 python中os.system()的返回值
最近遇到os.system()执行系统命令的情况,上网搜集了一下资料,整理如下,以备不时之需,同时也希望能帮到某些人。一、python中的 os.system(cmd)的返回值与linux命令返回值(具体参见本文附加内容)的关系大家都习惯用os.systemv()函数执行linux命令,该函数的返回值十进制数(分别对应一个16位的二进制数)。该函数的返回值与 linux命令返回
2015-01-27 16:56:03 31560 1
转载 malloc与free机制探索
I have a Debian with a Linux 2.6 Kernel, and I try to understand how the heap works/behaves with malloc() and free(). I tried to search for malloc() and free() algorithm and heap structure, but I
2015-01-21 10:26:37 658
转载 exec系列函数
本节目标:exec替换进程映像exec关联函数组(execl、execlp、execle、execv、execvp)一,exec替换进程映像在进程的创建上Unix采用了一个独特的方法,它将进程创建与加载一个新进程映象分离。这样的好处是有更多的余地对两种操作进行管理。当我们创建了一个进程之后,通常将子进程替换成新的进程映象,这可以用exec系列的函数来进行。当然,exec系列的函
2015-01-20 18:48:32 3752
转载 scp使用
Linux scp命令用于Linux之间复制文件和目录,具体如何使用这里好好介绍一下,从本地复制到远程、从远程复制到本地是两种使用方式。这里有具体举例:==================Linux scp 命令==================scp 可以在 2个 linux 主机间复制文件;命令基本格式:scp [可选参数] file_sour
2015-01-20 18:03:28 532
原创 Pushing to Git returning Error Code 403 fatal: HTTP request failed 新解决办法
很多人遇到这个错误就不用http而改用ssh了,其实这并不方便,改用ssh的方法我已经转载在我的博客里面。大家可以参看,要流血流汗的。我这里用的方法是还是用http的方法首先vim .git/config修改[remote "origin"] url = https://github.com/xxx/example.gi
2015-01-20 17:04:20 2648 1
转载 Pushing to Git returning Error Code 403 fatal: HTTP request failed
I just got the same problem and just figured out what's cause.Github seems only supports ssh way to read&write the repo, although https way also displayed 'Read&Write'.So you need to change yo
2015-01-20 16:41:31 913
转载 ptrace 捕捉系统调用 x64 version
#include #include #include #include #include //#include #include const int long_size = sizeof(long); void reverse(char *str) { int i, j; char temp; for(i = 0, j =
2015-01-20 12:55:15 640
原创 ptrace从i386到x64
我们之前学习ptrace的材料都是i386的,常常报错error: ‘struct user_regs_struct’ has no member named ‘eip’这是由于包含文件的问题,在i386结构下我们包含的头文件是在x64机器上需要进行修改,改成在x64机器上我们看到其实最终访问的文件是/usr/include/x86_64-linux-gnu/sys/user.
2015-01-20 10:31:54 1722 2
翻译 玩转ptrace:【Playing with ptrace, Part 2】
在这篇文章的第一部分,我们了解了ptrace是怎么用来追踪系统调用并且修改系统调用参数的,在这篇文章中,我们研究更高级的技术如加入断点以及在正在运行的程序中插入代码。debuggers利用这些方法来设置断点以及运行调试handlers.与第一部分一样,我们这里讨论的都是针对i386体系结构的。Attaching to a Running Process在第一部分,我们在调用ptra
2015-01-19 22:49:16 624
翻译 玩转ptrace:【Playing with ptrace, Part I】
你是否曾尝试介入系统调用的执行,是否曾尝试通过改变系统调用的参数来欺骗内核,是否曾经想过debugger是怎么停止一个正在执行的进程,并且让你控制一个进程的。如果你在想通过负责的内核编程来完成这个工作,请三思。其实Linux已经提供了一个完成这些工作的一个优雅的方式,就是ptrace系统调用。ptrace提供了父进程观察和控制其他进程的机制。它能够检查并且改变其他进程的image和寄存
2015-01-19 11:43:05 726
Python.Unix和Linux系统管理指南.pdf
2014-03-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人