一.前言嵌入式Linux系统中,应用开发过程中,很多情况下,用户需要对一个应用程序进行反复调试,特别是复杂的程序.采用GDB方法调试,由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver的方式进行调试. Gdbserver在目标系统中运行,gdb则在宿主机上运行.目标系统必须包括gdbserver程序,宿主机也必须安装gdb程序.在此我们还不能直接采用linux发行版自带的gdb,需要交叉编译gdb和gdbserver. 二.编译gdb和gdbserve…
基础的缓冲区溢出实践通常需要确定运行状态下程序中的某些局部变量的地址,如需要确定输入缓冲区的起始地址从而获得注入缓冲区中的机器指令的起始地址等.在 Linux 环境下,可通过 gdb 对程序进行动态调试,从而获得程序运行状态下的信息( 关闭 ALSR 机制 ),基础的 gdb 操作可参见笔者的文章Linux下编辑.编译.调试命令总结——gcc和gdb描述.使用 gdb 可以方便的获取程序动态运行状态下的信息,但通过 gdb 动态调试获取的诸如缓冲区的起始地址等信息可能与程序实际运行时的信息并不相…
参考:http://blog.csdn.net/shanghaiqianlun/article/details/7820401 一.gdb+gdbserver总体介绍 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接.使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能.调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在. 就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不…
需求说明: 今天在调试SVN的时候,需要创建用户的随机密码,想了下,在linux环境中是否能够生成呢,就搜索了下, 然后结合看到的帖子,分析一个可以生成密码的命令,在此记录下. 操作过程: 1.通过/dev/urandom工具生成随机密码 [root@testvm01 ~]# cat /dev/urandom | tr -dc a-zA-Z0-9#@ | head -c 13;echo OjX3Nst381U@R [root@testvm01 ~]# cat /dev/urandom | tr…
Linux环境中Openfire安装指南 安装环境: 安装软件:Openfire 4_1_0 http://download.igniterealtime.org/openfire/openfire_4_1_0.tar.gz 环境准备 先确保是否已安装jdk,出现下面信息表明已安装.若未安装,请先安装JDK java -version 一.Openfire安装 本文针对Openfire安装,提供了两种方式.根据自己的下载的文件不同,选择不同的安装方式即可. Openfire的tar.gz包安装…
本系列文章总结 Linux 网络栈,包括: (1)Linux 网络协议栈总结 (2)非虚拟化Linux环境中的网络分段卸载技术 GSO/TSO/UFO/LRO/GRO (3)QEMU/KVM + VxLAN 环境下的 Segmentation Offloading 技术(发送端) (4)QEMU/KVM + VxLAN 环境下的 Segmentation Offloading 技术(接收端) 第一篇文章总结了Linux 网络协议栈的概括和功能.本文总结非虚拟化环境中的各种 Segmentatio…
本文将介绍单元测试工具google test(GTEST)在linux操作系统中测试环境的搭建方法.本文属于google test使用的基础教程.在linux中使用google test之前,需要对如下知识有一些了解: (1)C/C++编程方法 (2)makefile的编写 (3)linux命令行操作 (4)GTEST背景知识:它是用来干什么的?它用什么语言编写的?它的一些基本语法?等等 以上知识不需要做到熟能生巧,只要达到入门级别,使用GTEST不会费任何力气,毕竟GTEST也不是一个高门槛的…
需求描述: 最近在写一个脚本的时候,要判断一个文件是否存在,有怎么样,没有就创建,这个时候 看到了一个test 结合 || 或者 &&的写法,就查看了下资料记录下是怎么个玩法. 操作过程: 1.判断一个脚本是否存在,如果存在就提示文件存在 [mysql@testvm01 baks]$ ls -l total -rw-rw-r--. mysql mysql Jan : innobin.log [mysql@testvm01 baks]$ test -e innobin.log &&a…
Linux环境中Qt程序的手工发布…
需求说明: 今天一个同事,问了一个这样的问题,在linux环境中,创建用户的时候,默认的是在/home目录下创建一个与用户名相同的家目录, 如何能够将这个/home更换成一个其他的,比如/opt/app下,研究了下,在此记录下 操作过程: 1.通过查看useradd命令的帮助文档,知道创建用户base_dir的配置在/etc/default/useradd文件中 [root@testvm01 ~]# cat /etc/default/useradd # useradd defaults file…
需求说明: 今天项目中有一个新的需求,需要在linux环境中搭建一个ftp服务,在此记录下. 操作过程: 1.通过yum的方式安装ftp服务对应的软件包 [root@testvm01 ~]# yum install vsftpd Loaded plugins: product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscrip…
需求说明: 今天在linux主机上,要查询一个域名是在哪个DNS上进行解析的,这个域名下面还有哪些的地址 操作过程: 1.linux环境中通过nslookup命令来进行查看 [deployer@CBSS-DMZ- ~]$ nslookup mall..com Server: 202.106.0.20 #这个域名是通过202.106.0.20这个DNS服务器进行解析的. Address: #DNS服务器使用的IP地址和端口号 Non-authoritative answer: mall..com…
Linux下使用GDB进行调试的常用命令记于此. $ sudo su # g++ -g test.cpp -o test -pthread # gdb test         <--------------------- 启动GDB (gdb) l            <--------------------- 从第一行开始例出原码,list命令简写. (gdb)              <--------------------- 直接回车,表示重复上一次命令 (gdb) b …
linux环境中,两个不同网段的机器互通   人评论3690人阅读2019-11-18 14:50:21   环境如下:   host1 单网卡 eth0 172.24.100.15/16   host2 双网卡 eth0 172.24.100.14/16   eth1 192.168.122.214/24   host3 单网卡 eth0 192.168.122.215/24 整个环境如下图: 无图 要求:让host1和host3互通,也就是host1能ping通host3,host3也能pi…
她娇羞说,不用这样细致认真的说啊———详细图解在Linux环境中创建运行C程序“不,这是对学习的负责”我认真说到 叮叮叮,停车,让我们看看如何在Linux虚拟机环境中,创建运行C程序 详细图解在Linux环境中创建运行C程序 文件夹的创建与C程序的创建 命令运行 最后 需要搭建环境的和安装gcc可以参考我前面两篇利用虚拟机搭建Linux操作系统实验环境Linux虚拟机环境下,gcc的在线安装 文件夹的创建与C程序的创建 打开你的文件夹,新建一个文件夹保存你的程序和编译运行中生成的文件,这样比较好…
在文章([事件中心 Azure Event Hub]使用Logstash消费EventHub中的event时遇见的几种异常(TimeoutException, ReceiverDisconnectedException))中,介绍了使用Logstash连接EventHub时,遇见的两种异常,但是对于如何在Linux环境中安装Logstash,并且配置EventHub设置,启动等,则包含在当前文章中. 安装Logstash 首先在Logstash中选择需要的版本,使用wget下载到当前目录中,如当…
1.简介 ElasticSearch-Head跟Kibana一样也是一个针对ElasticSearch集群操作的API的可视化管理工具,它提供了集群管理.数据可视化.增删改查.查询语句等功能,最重要还是它展现ElasticSearch集群的拓扑结构,并且可以通过它来进行索引(Index)和节点(Node)级别的操作.而且ElasticSearch-Head比Kibana对于ElasticSearch数据更能直观查看. 2.前期准备 2.1下载head插件 到GitHub下载页https://gi…
问题描述 实现部署NodeJS Express应用在App Service Linux环境中,并且使用Microsoft Authentication  Library(MSAL)来实现登录Azure AD用户,获取Token及用户信息的实现. 终极实现效果展示: 本实现中,最重要的两个步骤为: 1)根据文档" Tutorial: Sign in users and acquire a token for Microsoft Graph in a Node.js & Express we…
问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的环境. 在App Service for Linux环境中,为PHP提供的运行时当前只有PHP 8.0, 并且 PHP 8.0 中使用的Nginx作为代理服务器.然后请求才会传递到PHP应用中. 基于以上分析,在PHP应用中,会收到Nginx 和PHP双重限制.所以传递文件的限制问题设计到两个方面:…
2014025641 <嵌入式程序设计>第1周学习总结 本周学习内容 首先我们先复习下之前学习过的内容,什么是linux? Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8,10),它比Windows有更多的优点 1.拥有稳定的系统 2.安全性和漏洞的快速修补 3.多用户 4.用户和用户组的规划 5.相对较少的系统资源占用 6.可定制裁剪,移植到嵌入式平台(如安卓设备) 7.可选择的多种图形用户界面(如 GNOME,KDE) 但它也不是万能的也有很多弱点. 1.…
linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5.28 1.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载:http://nginx.org/en/download.html 1.首先确保系统安装GCC编译器及相关工具(autoconf 和automake他们用于自动创建功能完善的makefile,当前大多数软件包都是使用这一工具生成的makefile的) # yum -y install gc…
###动机###在LINUX使用GDB单步调试Chromium Android C++代码. [1]编译android平台Chromium, 修改GN文件中编译选项:-g -O0 使得编译优化更少,便于单步调试.gn gen --args='target_os="android" target_cpu="arm64" is_component_build=true symbol_level=2 remove_webcore_debug_symbols=true en…
gcc一般调试格式: gcc -Wall -o  test   test.c // -wall  显示程序错误详细信息      gcc -v  // 显示gcc的版本 gcc -o{1,2,3} test  test.c // 1,2,3三个级别的优化,优化级别越高编译的时间越长 gcc -ggdb3 -Wall -o test  test.c // 运用gdb可以跟踪调试程序,运行这命令gdb告诉gcc,使用gdb扩展产生调试,其中3表示使用的第三级调试信息,程序员可以获得更多的信息. 如果…
linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5 1.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载 # wget http://nginx.org/download/nginx-1.8.0.tar.gz # tar -zvxf nginx-1.8.0.tar.gz # cd ./nginx-1.8.0 # ./configure --prefix=/usr/local/nginx # make…
  linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5 1.编译安装Nginx 官网:http://wiki.nginx.org/Install 下载 # wget http://nginx.org/download/nginx-1.8.0.tar.gz # tar -zvxf nginx-1.8.0.tar.gz # cd ./nginx-1.8.0 # ./configure --prefix=/usr/local/nginx # ma…
1.https://aspnetboilerplate.com/Templates 2.后端项目发布,在publish中abp默认已经存在DockerFile文件 3.修改后端文件中的DockerFile文件 默认的值为 FROM microsoft/aspnetcore:2.0.1.但我当前的这个要求的是2.2的版本,在微软的docker官网上,根据自己实际项目需要更新这个值. 4.安装linux服务器,我自己用的是vmware虚拟机,linux版本是centos7,别忘了修改yum镜像源.…
1.在Linux系统中的[ ~/.baserc ]文件与[ /etc/profile ]配置环境变量后(可以使任意环境变量)无效的现象,如下为解决办法: 使用命令: vim ~/.zshrc 在 [# User configuration]下添加环境变量: 如图说明: 2.也可以直接将[ ~/.baserc ]文件或[ /etc/profile ]在此目录下source: 完毕 !…
问题描述: 公司的Linux服务器是内网,今天要实现某个功能,会用到python控制ssh,需要安装一个Paramkio库,和上一篇一样,仅仅依靠Pypi上下载下来的离线.whl安装包是不行的,linux服务器都是远程连接和操作的,对于使用python的同志们就非常不友好了,因为有众多的第三方库需要联网下载并安装的,如果有网就能够解决非常多的问题,少花费很多时间了,经过长时间的查阅资料和研究,刚刚解决了一个这类的问题,感觉这类的回答蛮少的,也不太具体,特此记录,希望能帮到有遇到同样情况的朋友们(…
需求描述: 今天看了一个系统的临时文件,有5.6G的大小,这个文件也没有用了,想要将大部分的文件都删除掉. 在此记录下删除的过程.删除前n行的记录. 操作过程: 对于数据量比较大的情况(本例5800万) 1.通过tail命令,将文件尾部的n行数据重定向到新的文件中 out.tmp > out.tmp.bak 2.然后删除旧的文件,将新的文件修改为原名字 rm out.tmp mv out.tmp.bak out.tmp 备注:这样的话文件out.tmp尾部的30000行就保存下来,之前的行就删除…
需求描述: 今天在测试环境中,准备查看mysql各个线程占用的io的情况,准备使用iotop命令来查看,发现没有这个命令 [root@testvm Packages]# iotop -bash: iotop: command not found 问题解决 1.挂载系统镜像,找到iotop的rpm包,然后进行安装 [root@testvm Packages]# iotop -bash: iotop: command not found [root@testvm Packages]# ls -l i…