运行命令

GDB调试

╄→гoц情女王★ 提交于 2019-12-25 06:41:19
概述:   GDB是UNIX下强大的调试工具,如果在UNIX下调试C/C++程序,GDB会比IDE的调试工具更好使。   要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:   如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。当你用-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。 启动gdb   启动GDB的方法有以下几种: 1、gdb <program> program也就是你的执行文件,一般在当然目录下。如果你需要带 argv[] ,则需要选项 -args 2、gdb <program> core 用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。 3、gdb <program> <PID> 如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。    GDB实现的功能: 按自定义的要求来运行程序。 可让被指定的程序在你所设置的断点处停住 当程序被停住时,检查你的程序中所发生的所有事。 动态低改变运行环境   可能从这几点你会觉得和IDE的调试没什么两样

gdb Debug

为君一笑 提交于 2019-12-25 06:40:43
  源码会进行行号提示。   如果需要查看在其他文件中定义的函数,在l后加上函数名即可定位到这个函数的定义及查看附近的其他源码。或者:使用断点或单步运行,到某个函数处使用s进入这个函数。 3)设置断点  (gdb) b 6   这样会在运行到源码第6行时停止,可以查看变量的值、堆栈情况等;这个行号是gdb的行号。 4)查看断点处情况  (gdb) info b   可以键入"info b"来查看断点处情况,可以设置多个断点; 5)运行代码  (gdb) r 6)显示变量值  (gdb) p n   在程序暂停时,键入"p 变量名"(print)即可;   GDB在显示变量值时都会在对应值之前加上"$N"标记,它是当前变量值的引用标记,以后若想再次引用此变量,就可以直接写作"$N",而无需写冗长的变量名; 7)观察变量  (gdb) watch n 在某一循环处,往往希望能够观察一个变量的变化情况,这时就可以键入命令"watch"来观察变量的变化情况,GDB在"n"设置了观察点; 8)单步运行  (gdb) n 9)程序继续运行  (gdb) c   使程序继续往下运行,直到再次遇到断点或程序结束; 10)退出GDB  (gdb) q 2.断点调试 命令格式   例子       作用 break + 设置断点的行号  break n      在n行处设置断点 tbreak +

在Ubuntu-14.04.3配置并成功编译Android6_r1源码

喜你入骨 提交于 2019-12-25 05:43:59
在Ubuntu-14.04.3配置并成功编译Android6_r1源码 折腾了一周,终于把Android6_r1的源码编译成功。先上图,这是在ubuntu中运行的Android模拟器: 由于我是在win8中安装虚拟机VMware,然后在虚拟机中安装Ubuntu进行编译,所以遇到诸多麻烦。如果直接在linux中编译,可能会更顺利。 -------------------------------------------------------------------------------------------------------------------------- 准备工作: VMware虚拟机,安装请参考: VMware8安装配置Win7、CentOS-7向导 官网下载ubuntu镜像: ubuntu-14.04.3-desktop-amd64.iso 安装ubuntu,一并参考“VMware8安装配置Win7、CentOS-7向导” ----------------------------------------------------------------------------- 建议:ubuntu内存分配4G,预留90G虚拟硬盘(之前选择了默认的20G,在解压tgz的时候直接报空间不足),网络选择“Bridged”方式。 为了编译Android源码

GDB调试器用法

一曲冷凌霜 提交于 2019-12-24 21:43:05
转自: http://21cnbao.blog.51cto.com/109393/223565 gdb调试器用法 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,GDB主要可帮助工程师完成下面4个方面的功能: 启动程序,可以按照工程师自定义的要求随心所欲的运行程序。 让被调试的程序在工程师指定的断点处停住,断点可以是条件表达式。 当程序被停住时,可以检查此时程序中所发生的事,并追索上文。 动态地改变程序的执行环境。 不管是调试Linux内核空间的驱动还是调试用户空间的应用程序,掌握gdb的用法都是必须。而且,调试内核和调试应用程序时使用的gdb命令是完全相同的,下面以代码清单22.2的应用程序为例演示gdb调试器的用法。 1 int add ( int a , int b ) 2 { 3 return a + b ; 4 } 5 6 main () 7 { 8 int sum [ 10 ] = 9 { 10 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 11 } ; 12 int i ; 13 14 int array1 [ 10 ] = 15 { 16 48 , 56 , 77 , 33 , 33 , 11 , 226 , 544 , 78 , 90 17 }; 18 int array2 [ 10 ] = 19 { 20 85 ,

【讲清楚,说明白!】进程管理

狂风中的少年 提交于 2019-12-24 18:34:31
目录: (一)了解进程的概念 (二)如何查看进程&&杀死进程 (三)把程序放置后台运行 (四)了解进程优先级 (五)调整进程优先级 (一)了解进程的概念 (1.1)在我们系统后台中有比较多的概念,第一个“程序”,指的是使用某种语言开发出来的一段代码,是静态存放在我们计算机硬盘上的program,它既不消耗CPU资源,也不消耗内存资源。第二个是“进程”,当一个程序运行的时候,在内存和CPU里会有体现,例如我们计算机中运行的QQ、迅雷等应用程序,称之为process。第三个是“线程”,线程属于进程里的一个单元,一个进程里可以包含多个线程,这些线程会共享进程的内存空间。 (1.2)我们知道系统中的每个用户都有自己的ID号,简称UID,同样每个进程页都有自己的ID号,process id简称PID。进程在运行的过程中也可能会产生子进程,例如运行的A进程进过一段时间的运行后会产生一个B进程,此时我们称A进程为父进程,称B进程为子进程,父进程可能生成一个子进程,也可能会杀死一个子进程,因此父进程和子进程之间是会通信的,我们把这种通信称之为“信号” (二)如何查看进程&&杀死进程 (2.1)pstree命令 (2.1.1)我们首先来查看进程之间的父子关系,我们可以使用pstree命令,在vms002主机上它可以查询出系统中所有进程的父子关系,其中系统启动后所有进程的父进程是systemd

linux常见服务器端口

柔情痞子 提交于 2019-12-24 16:58:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> linux 常见服务端口 2008-01-21 16:24:52 分类: LINUX 转 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由 运行在后台的守护进程(daemons) 来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统 关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进 程lqd等。有些书籍和资料也把守护进程称作:“服务”。选择运行哪些守护进程,要根据具体需求决定。查看系统可以提供的守护进程对应的服务,使用下面方 法,以root权限运行: #ntsysv 图1 可以选择的系统服务 界面如图1所示的窗口,下面详细介绍一下各项系统服务的功能。以英文字母为序: 一、Linux守护进程简介 1.alsasound :Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free

linux各项系统服务的功能

核能气质少年 提交于 2019-12-24 16:58:12
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons) 来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统 关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进 程lqd等。有些书籍和资料也把守护进程称作:“服务”。选择运行哪些守护进程,要根据具体需求决定。查看系统可以提供的守护进程对应的服务,使用下面方 法,以root权限运行: 界面如图1所示的窗口,下面详细介绍一下各项系统服务的功能。以英文字母为序: 一、Linux守护进程简介 1.alsasound :Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了 一种声卡Gravis UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free 及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。 2.acpid:acpid(Advanced Configuration

安装vue.js的方法

时光总嘲笑我的痴心妄想 提交于 2019-12-24 15:06:31
一、简介 Vue.js 是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架 。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。 Vue.js 的目标是通过尽可能简单的 API 实现 响应的数据绑定 和 组合的视图组件 。 Vue.js是一个MVVM模式的框架,如果读者有angular经验,一定能够很快入门Vue的 vue.js的特点: 易用: 已经会了HTML,CSS,JavaScript?即刻阅读指南即可开始构建应用! 灵活: 简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。 高效: 16kb min+gzip 的运行大小,超快虚拟 DOM ,最省心的优化 二、环境搭建 vue推荐开发环境: Node.js: javascript运行环境(runtime),不同系统直接运行各种编程语言 npm: Nodejs下的包管理器。由于国内使用npm会很慢,这里推荐使用淘宝NPM镜像(http://npm.taobao.org/) $ npm install -g cnpm --registry=https://registry.npm.taobao.org

redis的主从复制原理

淺唱寂寞╮ 提交于 2019-12-24 13:55:04
1. 前言 和MySQL主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis主从复制可以根据是否是全量分为全量同步和增量同步。 2. 旧版复制功能实现 redis复制功能分为同步和命令传播两种操作: (1)同步操作负责将从数据库的状态更新为和主数据库状态一致 (2)命令传播操作则用于当主服务器状态修改时,让从服务器状态重新回到一致 2.1 同步 同步操作由sync操作完成: (1)从服务器向主服务器发送sync命令 (2)收到sync命令的主服务器执行BGSAVE命令,生成RDB文件,并使用一个缓冲区缓存生成RDB期间所有的写命令 (3)RDB生成完成时,发送RDB给从服务器,从服务器载入RDB,状态和主服务器一致 (4)然后主服务器将缓冲区中的写命令全部传给从服务器,状态一致 2.2 命令传播 同步操作完成后,主从状态一致,但是每当客户端向主服务器执行写命令时,主服务器会修改,和从服务器状态不一致,为了让主从状态重新回到一致,主服务器会发送写命令给从服务器,让从服务器回到和主服务器一致的状态。 2.3 旧版复制功能的不足之处 在redis2.8之前,主从服务器的复制会分为两种: (1)初次复制:从服务器以前从没复制过其他主服务器,或者从服务器的主服务器换了 (2)断线后复制

Ubuntu16.04:安装docker

試著忘記壹切 提交于 2019-12-24 12:36:33
Docker是什么 Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系统 Docker提供了一组命令,让用户更加方便直接地使用容器技术,而无需要过多关心底层内核技术 注1:什么是容器 一个容器就相当于一个虚拟机 注2:docker用途,目前有三大类 1.提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境 2.提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容 3.组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构 在ubuntu中如果要使用docker首先要安装vim 在安装vim的前提下,要更新apt包索引 注意首先要切换成管理员登录 sudo su sudo apt-get update 然后等更新成功后再安装vim sudo apt-get install vim 再进行一次更新,为了让更新的更快我们在此次更新后进行换源,换成阿里源 更新 sudo apt-get update 换源 首先输入以下代码 sudo vim /etc/apt/sources.list 编辑先输入i 保存退出 esc键,:wq 将上面有的红色内容都注释掉然后换成以下代码片 在这里插入代码片 deb-src http://archive