WarEric的博客

编程菜鸟,主要用来整理记录一些学习笔记

linux下 vim+ctags+cscope阅读源码

linux下 vim+ctags+cscope阅读源码一. vim二. ctags安装使用准备使用方法一方法二命令三. cscope安装使用准备使用方法一方法二命令四. taglist建议 一. vim vim作为linux下的必备文本编辑工具,必须掌握,网上教程很多,就不列举了。这里有一份简明v...

2018-12-15 14:13:57

阅读数 57

评论数 0

远程桌面连接Ubuntun16.04安装kvm创建桥接虚拟机

如果我有一台物理服务器,但需要模拟多个机器,那么我可以在服务器上安装多个虚拟机供多个用户使用。本文介绍的是如何通过远程桌面连接一台物理服务器,然后通过远程桌面在物理服务器上安装kvm,之后通过kvm安装虚拟机,并将虚拟机配置为桥接模式;这样物理服务器不需要做任何改变,可以为其他人随意创建和销毁虚拟...

2018-05-07 19:56:45

阅读数 110

评论数 0

函数栈结构与内存对齐

函数栈 下图是x86-64的函数栈的结构, 函数P调用函数Q的过程,Q正在执行。 这里仅对两个地方解释,其他的很容易理解,就不细说了 其中返回地址用来实现函数的返回。当Q要返回到P时,就要调用此地址获取返回位置。 参数构造区是对调用函数P传递的参数的拷贝,因为当P传递参数过多时,无法通...

2018-04-23 11:03:21

阅读数 245

评论数 0

控制指令

条件码 CPU维护一组单个位的条件码寄存器 - CF:进位标志。最近的操作使最高位产生了进位。可用来检查无符号操作的溢出。 - ZF:零标志。最近的操作得出得结果为0。 - SF:符号标志。最仅的操作得到的结果为负数。 - OF:溢出标志。最近的操作导致一补码溢出——正溢出或负溢出。 ...

2018-04-22 11:01:22

阅读数 1374

评论数 0

算数和逻辑操作

这些指令类有各种不同大小操作数的变种,(只有leaq没有)例如ADD由四条加法指令组成:addb, addw, addl, addq。 指令 效果 描述 leaq S,D D<—&S 加载有效地址 ...

2018-04-20 23:11:37

阅读数 97

评论数 0

数据传送指令与栈操作

数据传送指令 指令 效果 描述 MOV S,D D<—S 传送 movb 传送字节 movw 传送字 movl 传送双字 movq 传送四字 movabsq ...

2018-04-20 23:10:19

阅读数 270

评论数 0

浮点数寄存器与指令

寄存器 AVX浮点体系结构允许数据存储在16个YMM寄存器中 255 127 0 %ymm0 %xmm0 1st FP arg.返回值 %ymm1 %xmm1 2nd FP参数 %ymm2 %xmm2 3rd FP参数 ...

2018-04-16 17:49:05

阅读数 1155

评论数 0

寄存器名称与数据类型

寄存器 x86-64结构的CPU包含一组16个存储64位值的通用目的寄存器;历史上最开始的寄存器只有8个8位的寄存器,后来经历了16位, 32位直至现在的64位,寄存器也由8个扩展到16个。 程序可以依据每个寄存器的名称使用其中的8位,或16位,或32位,或64位;使用每个寄存器有约定的使用目...

2018-04-15 22:06:22

阅读数 1536

评论数 0

GDB命令(待续)

GDB命令 命令 效果 开始和停止 quit 退出GDB run 运行程序(在此给出命令行参数) kill 停止程序 断点 break multstore 在函数multstore入口处设置断点 ...

2018-04-14 22:36:51

阅读数 70

评论数 0

从原理上理解C++中引用和指针的区别

C++中引入了引用这种数据类型,可以对引用所指向的数据直接进行修改,和对原始数据操作一样,类似一种别名;而指针操作却需要考虑引用与解引用,那么这两种有什么区别呢?仅从语法上死记硬背总是忘记,用起来也不得心应手,从原理上理解才是最好的选择,接下来我试图从我个人理解的角度进行分析(可能是错的),最后再...

2018-04-14 18:18:04

阅读数 145

评论数 0

if分支语句通过控制传送和条件传送实现的区别

(注:以下内容和原理均来自《深入理解计算机系统第3版》) 当我们实现一个带有判断功能的代码时要使用到if判断语句,if语句在汇编中是如何实现的呢?我们先来看这样一个代码absdiff.clong absdiff(long x, long y) { long result; ...

2018-04-11 16:17:18

阅读数 345

评论数 1

简单的用java操作Excel入门

经常要在程序中输出一些数据,为了方便给别人看,或者利用一下excel的画图功能;又或者需要将excel的数据读入进行处理。本文教你这事如何下手,但并不深入,要深入这里有详细说明方式一:输出为csv格式的文件(这个仅能输出数据到excel使用)由于excel是支持csv格式的数据的,所以仅仅只是简单...

2018-01-21 21:20:07

阅读数 185

评论数 0

制作自己的Ubuntu镜像

本文提供一个将目前自己的操作系统制作为镜像的方法。制作的iso文件重新烧录安装到新的地方,可以恢复到制作镜像时的系统。同时也提供一些实现供参考。这里的方法我仅在Ubuntu14.0_desktop下实验过,其它ubuntu系统应该也没有问题。方法一:使用Remastersys工具制作镜像只需要安装...

2018-01-19 10:35:46

阅读数 2413

评论数 2

C语言函数传指针时究竟传的是什么?

C语言函数传指针时究竟传的是什么?我们知道指针指中的内容是一个内存的地址,只有对指针进行解引用(*p),计算机才会指针所指向地址中的内容。在进行函数间调用时传递指针经常会造成段错误(也就是内存错误),其实主要是空指针引起的,或者指向了错误的位置。首先看如下一段代码#include <stdi...

2018-01-09 10:43:42

阅读数 1444

评论数 0

Maven环境搭建及5分钟体验

环境搭建(这里只讲linux下,windows下同理,只是环境变量配置方式不同) 首先到maven的官网下载对应的二进制.tar.gz包,将对应的包解压到你指定的目录下 配置环境变量,在/etc/profile文件最后一行后面添加路径,例如我的为: #maven path configuratio...

2017-10-07 17:10:31

阅读数 114

评论数 0

Java在linux下的安装

本文介绍如何在Linux系统上进行java环境的搭建(最原始环境搭建,不是使用OpenJDK那种,或者apt-get, yum等方式)1.到oracle的官网上下载你所需要的java的JDK的版本。2. 将其解压到一个你的软件存放的目录。3.配置环境变量:1. 在shell下输入vim /etc/...

2017-10-06 15:04:17

阅读数 646

评论数 0

C Primer Plus 6 笔记——可移植类型:stdint.h和inttypes.h

C Primer Plus 6 笔记——可移植类型:stdint.h和inttypes.  C语言提供了许多有用的整数类型。但是,某些类型名在不同系统中的功能不一样。C99新增了两个头文件stdint.h和inttypes.h,以确保C语言的类型在各系统中的功能相同。(使用linux的童鞋可以使用...

2017-07-30 22:20:28

阅读数 922

评论数 0

如何在intellij idea下运行floodlight

<转载请注明出处> floodlight作为SDN的一种开源控制器,允许开发者进行二次开发,但其官方教程只给出了如何在ant, maven,eclispe 下的运行方式,若是想要导入到intellij idea下运行,若是不进行一些配置,运行就会报错,解决方式如下: 1.到flood...

2017-04-28 12:31:25

阅读数 471

评论数 0

Java异常

异常的作用异常的引入提高了程序的健壮性.当程序运行出现意外情形时,系统会自动生成一个Exception对象来通知程序,从而提高容错性.先来看异常的使用方式和作用.public class MainTest { public static void main(String[] args) {...

2016-06-18 00:04:28

阅读数 313

评论数 0

Java反射机制

反射机制就是可以把一个类,类的成员(函数,属性),当成一个对象来操作,也就是说,类,类的成员,我们在运行的时候还可以动态地去操作他们. 获得class对象 每个Class被JVM加载后,系统就会为该类生成一个对应的Class对象,通过该Class就可以访问到JVM中的这个类.(这里注意该类可能...

2016-06-16 19:51:15

阅读数 240

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭