在Windows 下使用和调试Linux 图形界面程序

在Windows 下使用和调试Linux 图形界面程序
在Windows 下使用和调试Linux 图形界面程序

在Windows 下使用和调试Linux 图形界面程序

Windows下可以通过SSH客户端或Telnet程序远程登录到Linux/Unix 上进行管理,编程开发和调试字符界面程序.比如用Magic Unix C++这样的Windows 下的集成开发环境.界面完全模仿VC++ 6.0.可以象VC++单步调试Windows程序一样,去调试Linux或Unix远程主机应用程序.非常高效和方便.

Linux图形界面程序呢?是否能通过这种方法,在Windows下单步调试.Magic Unix C++的文档提到是可以通过StartNet的X-Win32 来完成调试.但是文档写得非常简单.后来经过查找资料和试验,发现是确实是可以用这个方法在Windows 下单步调试图形界面程序.

Windows下调试Linux 时图形界面原理就是利用了X Windows 体系是一个C/S结构的原理,在Linux 上运行一个X Windows 服务器.在Windows 下运行一个X-Windows客户端.Magigc Unix C++ 通过X Windows客户端与服务器通讯完成图形界面软件的调试.

因此要在Windows调试Linux GUI程序,必须配置如下软件

1.配置X-Windows 网络服务

2.在Windows下安装和配置X-Win32

3.在Magic Unix C++配置和调试软件

以下将以Redhat 9.0 为例,演示如何安装远程的X-Client客户端

配置X-Windows 网络服务

X-Window是用在大多数UNIX系统中的图形支持系统。如果你在你的Linux机器上使用GNOME或者KDE的话,你就正在使用X系统。它由

X联盟(https://www.360docs.net/doc/2013811444.html,)定义并维护。大多数的Linux用户使用的都是由

XFree86 项目 (https://www.360docs.net/doc/2013811444.html,)提供的X Window系统的实现。

xdm 使用X联盟的X显示管理控制协议,即XDMCP,来和X服务器通信。它允许X服务器从运行xdm服务的服务器上获得会话服务。

基本概念:

1、什么是XFree86

XFree86是X Window系统的一种开放源代码的实现。它提供了一种对鼠标、键

盘、显卡和窗口图形环境的Client-Server接口。所以客户端程序可以运行在不同

的主机上,由一台服务器提供X Window的Server服务。

2、什么是XDMCP

XDMCP即“X Display Manager Control Protocol”,是一种网络协议。由它来建立

图形客户端程序与X Window服务器的连接与通信。

3、什么是XDM

XDM即“X Display Manager”,由它来启动X Window服务器,并管理图形客户

端程序的登录、会话、启动窗口管理器(KDE、Gnome)等。KDE和Gnome也

提供了自己的xdm的实现,分别叫kdm和gdm。

4、什么是XFS

XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。

第一步:修改配置文件

为了安全,缺省的网络服务是没有打开.所以需要手工打开如下配置

/etc/X11/xdm/Xaccess

?这是XDM接入权限设置

?把(大约40行):# * #any host can get a login window

行首注释#去掉

◆表示可以让所有主机接入

/etc/X11/gdm/gdm.conf

?GNOME的显示配置

?找到[xmdcp]段, 其中的Enable=false 改为Enable=true 或

Enable=1。

◆表示打开xmdcp服务

/etc/kde/kdm/kdmrc

?KDE的显示配置,这个测试不需要改也能成功,为了保险也一并修改

?找到[xmdcp]段, 其中的Enable=false 改为Enable=true 或

Enable=1。

◆表示打开xmdcp服务

/etc/X11/xdm/xdm-config

●在 (Line 28)displayManager.requestPort:0前面加上一个!

号,结果如下

?

Redhat 9.0 关于XDM缺省配置.以下各项是相关缺省配置,采用缺省值即可,不要修改

●/etc/X11/gdm/gdm.conf

?Port=177 #xdm侦听端口必须是177

●/etc/X11/xdm/Xservers文件属性为444

●/etc/X11/xdm/Xsetup_0的属性为755

以上配置也可以用图形界面进行配置,作用与上面等效

第二步:启动图形界面

有两种方式,一种是直接修改/etc/inittab 设为图形界面启动模式.即修改第一句中数字为5,(3是字符界面启动)

id:5:initdefault

自动启动图形界面,X-Win32的登录框

还有一种是在主机的控制台输入startx手工启动图形界面

第三步:打开服务

为简化处理, 一般情况下选择直接关闭Linux防火墙.如果不想关闭防火墙,需要把UDP 177端口开放出来,用如下命令:

iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

●启动XFS服务

XFS即“X Font Server”,可以由由一台服务器来统一提供字体,远程图形客户端程序就不需要单独安装所有的字体了。在命令行下输入如下命令

service xfs stop

service xfs start

可以用netstat 来检查7100端口来判断XFS是否正常工作

netstat –ln | grep 7100

如果结果中包含如下提示,表示XFS正常工作.

unix 2 [ ACC ] STREAM LISTENING 2436 /tmp/.font-unix/fs7100

●启动XDM服务

用xdm命令启动即可

可以用netstat 来检查177端口来判断XFS是否正常工作

netstat –ln | grep 177

如果结果中包含如下提示,表示XDM正常工作.

udp 0 0 0.0.0.0:177 0.0.0.0:*

配置X-Win32 与服务器相连.

●广播表示客户端向局域网所有X-Windows服务器发送广播包查询其IP地址

?如果是局域网中并且X-Windows服务器不多采用这一模式

●查询模式表示向指定主机发送X-Windows 主机,

间接表示填写HOST地址直接链接X-Windows服务器上

X-Win32连接的效果

在putty中运行图形界面程序

有时不需要调试的应用程序的情况下,一般是在putty下进行编译和运行,但图形界面程序一般不能用这种模式运行.在X-Win32配置成功后, 我们可以用putty结合X-Win32来运行Linux 图形界面程序!

1.修改redhat 9.0的服务器ssh相关配置,使其支持X11

a)修改/etc/ssh/sshd_config

●(Line 78): X11Forwarding yes #打开X11转发

●(Line 79):X11DisplayOffset 10 #打开DisplayOffset

2.重启sshd,以便刚才的修改生效

/etc/init.d/sshd restart

3.在X-Win32配置一个指向服务器的会话,参见上一节

4.配置Putty一个会话,并支持X11 转发(版本为0.60)

5.启动X-Win32并连接上线

6.用Putty登录服务器

a)在Putty下输入echo $DISPLA Y查看DISPLA Y变量,应该显示为: 10.0

7.运行任意图形界面程序(如kwrite), X-Win32将提示允许连接,选择始终执行这一操

作,点击确定.

这时在已经联接的X-Win32出现执行程序

8.aa

在Magic Unix C++调试图形界面程序

以下以QT为例.来演示如何调试一个QT应用程序

1.在Magic Unix C++ 创建一个QT的C++项目.

2.加入QT源代码

加入代码如下

3.修改编译程序的Makefile

●在主菜单的project->project Settigs要采用自定义的

Makefile命令

●qmake -project;qmake;make

4.设置运行的X-Windows环境变量

●设置环境变量DISPLAY,值为 Magic Unix C++所在机器IP:0.0,

●如本例,机器IP为192.168.0.1 则值为 192.168.0.1:0.0

5.按一般的步骤编译程序

6.运行X-Win32连接到Linux主机

7.按一般单步调试的步骤调试

此时在屏幕上会出现出现联接提示,确认后开始调试

利用gdb调试core文件

利用gdb调试core文件 什么是core dump core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump。(linux中如果内存越界会收到SIGSEGV信号,然后就会core dump) 在程序运行的过程中,有的时候我们会遇到Segment fault(段错误)这样的错误。这种看起来比较困难,因为没有任何的栈、trace信息输出。该种类型的错误往往与指针操作相关。往往可以通过这样的方式进行定位。 造成segment fault,产生core dump的可能原因 1、内存访问越界 a) 由于使用错误的下标,导致数组访问越界 b) 搜索字符串时,依靠字符串结束符来判断字符串是否结束,但是字符串没有正常的使用结束符 c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函数,将目标字符串读/写爆。应该使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函数防止读写越界。 2、多线程程序使用了线程不安全的函数。 3、多线程读写的数据未加锁保护。 对于会被多个线程同时访问的全局数据,应该注意加锁保护,否则很容易造成core dump 4、非法指针 a) 使用空指针 b) 随意使用指针转换。一个指向一段内存的指针,除非确定这段内存原先就分配为某种结构或类型,或者这种结构或类型的数组,否则不要将它转换为这种结构或类型的指针,而应该将这段内存拷贝到一个这种结构或类型中,再访问这个结构或类型。这是因为如果这段内

win7下装linux双系统(详细教程)

Win7下安装linux双系统 经过大半天的摸索与实验终于在自己的电脑上成功的装上了Win7和Linux的双系统,现在我把详细的流程给大家分享了,希望有兴趣的可以去试试。 不要说什么百度一下一大片,百度上的流程都是相当相当的抽象,当然,这份流程也是通过百度上的一些方法然后加上自己的细化而来的。 首先要先做好准备工作,将Win7中的磁盘空间腾出38G左右,这里的腾出不是说磁盘中的剩余空间,而是要将部分磁盘进行压缩。具体方法如下: 右键单击计算机,选择管理,在管理窗口中有一项磁盘管理,如下图: 单击后在中间出现磁盘管理,如下图:

有绿框框着的是逻辑分区,此时就好对磁盘进行压缩,如果磁盘空间不够大的话就直接对最后一个逻辑分区进行手术。 先说说磁盘空间不够大的情况,可以先删除最后一个逻辑分区,方法是:右击最后一个逻辑分区,选择删除卷,然后选择是,此时你能看到在最后出现了可用空间,这时右击可用空间,选择格式化,此时不要将整个可用空间格式化,只用格式化8G空间就足够了,剩余的空间留着装Linux用。格式化时注意选择格式为FAT32。 如果磁盘空间足够大就只需将磁盘进行压缩,具体方法是,右击一个逻辑驱动器,选择压缩卷,只用腾出38G就足够了,然后将这38G按上面的方式格式化8G,其余不用管。

现在就可以在网上下载一份Linux系统镜像,下载地址 https://www.360docs.net/doc/2013811444.html,/d/iso/1000001036.html(建议下载完整版) 下面就要将下载好的镜像复制到刚刚前面格式化好了的FAT32磁盘里,用Winrar解压软件,将镜像中的inages和ioslinu两个文件夹复制到FAT32磁盘的根目录中,当然,原来的镜像要保留不能修改。 然后将isolinux文件夹中的initrd.img和vmlinuz两个文件夹复制到FAT32磁盘的根目录下,同时将其也复制到C盘的根目录中。 刚才的工作结束后,你的FAT32磁盘中应该如下图所示: 接下来需要在网上下载EasyBCD 2.02,下载地 址:https://www.360docs.net/doc/2013811444.html,/soft/58174.htm 安装EasyBCD程序,与安装一般软件一样,这里就不做详细说明了。 运行EasyBCD程序出现的第一个界面就是问你将EasyBCD的配置文件的保存路径,这里可以随便选择,我选择的是默认的C盘,下面的两个选框不用选,然后点右下角的确定。 下面是EasyBCD的界面:

实例—使用gdb调试器

2.4 实例—使用gdb调试器 1.编写实例程序gcctest.c,见2.2小节的开头部分 2.编译 3.启动GDB,执行程序 启动gdb,进入gdb调试环境,可以使用gdb的命令对程序进行调试。 [root@localhost gdbtest txt]# gdb //启动gdb GNU gdb Fedora (6.8-27.el5) Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu". (gdb) run gcctest //在gdb中,运行程序使用r或是run命令,注意,gcctest没有调试信息Starting program: gcctest No executable file specified. Use the "file" or "exec-file" command. //要使用file或exec-file命令指出要运行的程序 (gdb) file gcctest //使用file命令指出要运行的程序gcctest,注意,对gdb命令也可以使用Tab gcctest gcctest.c gcctestg (gdb) file gcctest //使用file命令指出要运行的程序gcctest Reading symbols from /root/Desktop/gdbtest txt/gcctest...(no debugging symbols found)...done. (gdb) r //在gdb中,运行程序使用r或是run命令 Starting program: /root/Desktop/gdbtest txt/gcctest gcctest (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) hello in main hello 1 hello 2 sum=54125560035401396161080590579269632.000000 Program exited with code 057. (gdb) file gcctestg //使用file命令指出要运行的程序gcctestg Reading symbols from /root/Desktop/gdbtest txt/gcctestg...done. (gdb) r //在gdb中,运行程序使用r或是run命令 Starting program: /root/Desktop/gdbtest txt/gcctestg gcctest hello in main hello 1 hello 2 sum=54125560035401396161080590579269632.000000 Program exited with code 057. (gdb) q //使用q或是quit命令退出gdb [root@localhost gdbtest txt]# 4.GDB命令简介

pxe引导安装windows和linux

Pxe 网络安装windows和linux 来自天地一沙鸥网络学习总结 上一个星期在数据中心装了几百台服务器,在研究通过网络安装windows系统,之前也在linux环境下搭建了pxe server环境下安装centos。这次在windows环境下利用tftp32工具和binlsrv在windows搭建环境,安装windows和linux系统。在vmware测试。在linux搭建环境还是比在windows环境下的要稳定很多。只是在日常工作中不是经常用linux,自己的工作电脑也是windows系统。所以还是在windows下使用的方便点,相对更加实际点。 Windows和linux都利用脚本自动安装。 介绍下工具的目录结构: W2k3.0 winxp.0 w2k.0 vmlinuz5.5 都是启动引导文件,2003和2000,xp都是在i386提取重命名的文件,vmlinuz是linux系统引导需要的文件。 Winxp.sif win2k3.sif 是windows无人值守安装脚本。 参考:https://www.360docs.net/doc/2013811444.html,/895003/501329 这篇文章有纤细的介绍windows xp 2003 2000系统引导文件的制作。 引导菜单 Pxelinux.cfg目录下建立default文件,内容如下。注意kernel写的就是相应的引导文件。

DEFAULT vesamenu.c32 PROMPT 0 MENU TITLE PXE Boot Install All System BY backsan MENU BACKGROUND backsan.png TIMEOUT 600 LABEL hdd MENU LABEL 0‐‐‐‐Boot From HARDDISK kernel chain.c32 APPEND hd0 1 LABEL winxp MENU LABEL 1‐‐‐‐Boot Install Windows XP pro From Network kernel winxp.0 LABEL win2k MENU LABEL 2‐‐‐‐Boot Install Windows 2000 server From Network kernel w2k.0 LABEL win2k3 MENU LABEL 3‐‐‐‐Boot Install Windows 2003 server From Network kernel w2k3.0 LABEL centos5.5 MENU LABEL 4‐‐‐‐Boot Install centos5.5 From Network kernel vmlinuz5.5 append initrd=initrd5.5.img LABEL centos6.3 MENU LABEL 5‐‐‐‐Boot Install centos6.3 From Network kernel vmlinuz6.3 append initrd=initrd6.3.img。 脚本文件:2003server为例 [data] floppyless = "1" msdosinitiated = "1" ; Needed for second stage OriSrc = "\\192.168.80.34\tftp\win2k3\i386" OriTyp = "4"

windows下在虚拟机中安装linux

windows下虚拟linux 要在windows系统上虚拟linux系统,首先要在WINDOWS系统里边先装一个虚拟机,有好多版本,我用的是VMware Workstation汉化版,下载VMWare解压后根据提示正触安装VMWare到硬盘中 (1) 建立虚拟机 A.用鼠标左建双击桌面中的"VMware workstation"图标,运行虚拟机 B.建立一台虚拟机。点击“FILE(文件)”-“NEW(新建)”--“NewVirtual Machine( 新建虚拟机)”,弹出虚拟机创建菜单。 C.根据向导一步一步地创建虚拟机,首先选择安装方式是“TYPICAL(典型)”还是“CUS TOM(自定义)”安装。我这里选择典型。 D.因为这里是用于安装REDHAT,所以在Guest operating system(客户操作系统)“中选择”LINUX“,点击下一步。 E.在Virtual machine name(虚拟机名字)中输入你想建立的虚拟机的名字 F.在Location(位置)中选择虚拟机的安装位置。因为会在虚拟机中安装操作系统和应用软件,所以建议将虚拟机安装在一个有较大空间的磁盘分区中 G.如果你的电脑连接在网络中,那么选择一个合适的网络环境。我这里选择 Use bridged net-working(使用路由网络) H.点击finish,返回VMWARE主界面,LINUX虚拟机就建好了。上面的安装和设置,基本上不会出现什么异常的情况,下面就开始安装linux系统安装操作系统: A. 选中LINUX虚拟机,点击VMWARE工具栏中的Power ON按钮,启动LINUX 虚拟机 B.然后插入REDHAT光盘,虚拟系统根据你选择的安装方式开始安装。 3.从硬盘安装REDHAT 如果你认为从光驱中安装比较费时间,又不方便,那你可以将光盘文件转换成ISO文件拷贝在硬盘中,然后从硬盘安装。

gdb单步调试(中)

一、设置断点(BreakPoint ) 我们用break 命令来设置断点。正面有几点设置断点的方法: break 在进入指定函数时停住。C++ 中可以使用class::function 或function(type,type) 格式来指定函数名。 break 在指定行号停住。 break +offset break -offset 在当前行号的前面或后面的offset 行停住。offiset 为自然数。 break filename:linenum 在源文件filename 的linenum 行处停住。 break filename:function 在源文件filename 的function 函数的入口处停住。 break *address 在程序运行的内存地址处停住。 break break 命令没有参数时,表示在下一条指令处停住。 break ... if ... 可以是上述的参数,condition 表示条件,在条件成立时停住。比如在循环境体中,可以设置break if i=100 ,表示当i 为100 时停住程序。 查看断点时,可使用info 命令,如下所示:(注:n 表示断点号) info breakpoints [n] info break [n] 二、设置观察点(WatchPoint ) 观察点一般来观察某个表达式(变量也是一种表达式)的值是否有变化了,如果有变化,马上停住程序。我们有下面的几种方法来设置观察点: watch 为表达式(变量)expr 设置一个观察点。一量表达式值有变化时,马上停住程序。 rwatch

windows下搭建Linux开发环境

windows下搭建Linux开发环境 以前一直都是安装的双系统来运行windows和linux,当想学习一下linux编程的时候就跑到linux下面去,做其他事情的时候就转到windows下面来。虽然在linux 下也学会了使用wine,也能够运行source insight看看程序,或者打开winamp听听歌,不过毕竟不是windows环境,还是有很多不方便的地方,winamp最小化了居然还原的时候桌面上没有图标;采用source insight打开linux源码,中文注释却全是乱码,好不容易转好了字体,打开来,字体大小不一,根本无法查看,最后只好放弃。 无意间,用vmware安装好了ubuntu的图形化界面,才发现一切原来如此简单。以前虽然也用过vmware,不过以前电脑配置实在是太差,在vmware下面安装linux 的图形化界面能安装成功,却无法使用,只好望洋兴叹。这次终于应用vmware把所有东西都搞定了,可以让我远离双系统了,也节省下了40G的硬盘空间。 1)vmware安装Ubuntu 很简单,感觉都没什么好说的,先安装vmware,windows安装程序,傻瓜式的安装,easy。然后到ubuntu网站去下载live cd或者dvd版本都行,个人建议下载live cd就可以了,安装以后基本的系统环境和常用软件都有了,当然IDE环境是没有的;不过我下载的dvd版本好像安装的时候也没有把IDE环境安装上去,还是我自己后来安装的,因此live cd和dvd在初始安装时,差别不大。 2)设置ubuntu环境 在vmware下面安装过的ubuntu图形界面,分辨率好像是800*600的,即使是全屏,也只能占这么大的屏幕,不是一般的郁闷;就像你面前有一顿美食,偏偏是锁在一个大铁笼子里的,而你的手能够到的却只有一两个菜,那个郁闷劲,确实让人难受。不过也没有关系,因为你没有安装vmware tools,所以你无法享受全屏带来的好处。安装过vmware tools以后,你就发现屏幕能根据具体大小进行自动调整了。不过我在安装vmware tools时,是出错了的,有一步编译出错了,不过最后还是安装成功了,只是在windows和linux之间共享的文件不能相互访问。不过,平时访问文件比较少,而且Ctrl+C/Ctrl+V,已经文件的复制、粘贴都能正常使用,因此对于我来说,这点缺憾我能接受,由于安装的ubuntu环境只是简单的办公环境,都是一些基本软件,惟一能派上用场的可能就是open office,而开发环境方面,只有最基本的一些软件。个人比较习惯于用IDE来开发程序,因为可以省去很多其他的麻烦,比如手动编写makefile文件,运行cvs命令进行cvs操作,或者是采用gdb 命令进行调试,这样可以更专注于程序编写。关于IDE开发还是采用最简单的vi开发,gcc编译,gdb调试,仁者见仁,智者见智,没有好坏,关键看个人喜好。 与我而言,我安装好ubuntu以后,需要安装一个最适合的IDE环境,以便于开发;在ubuntu下面安装软件,现在也是越来越方便了,有图形化的添加/删除界面,很是方便,惟一需要说明的是找一个合适的软件源,否则你会发现安装软件真是一件郁闷的事情,看着你的电脑以400Bps的速度从网络上面下载软件包时,估计你恨不得把网络给拆了,顺便把你的网络运营商给臭骂一通,其实这一切的根源在于你没有找到合适的软件源,我采用的是电信的ADSL线路,找的是lupa网络的源,也是电信的线路,速度不是一般的快,真的是很幸福,源地址为:deb https://www.360docs.net/doc/2013811444.html,/ubuntu intrepid main universe;如果你是教育网的网络或

gbd调试

用GDB调试程序 GDB概述 ———— GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UN IX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能: 1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) 3、当程序被停住时,可以检查此时你的程序中所发生的事。 4、动态的改变你程序的执行环境。 从上面看来,GDB和一般的调试工具没有什么两样,基本上也是完成这些功能,不过在细节上,你会发现GDB这个调试工具的强大,大家可能比较习惯了图形化的调试工具,但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。 一个调试示例 —————— 源程序:tst.c

1 #include 2 3 int func(int n) 4 { 5 int sum=0,i; 6 for(i=0; i cc -g tst.c -o tst 使用GDB调试:

WIN7下硬盘安装linux双系统

WIN7操作系统安装linux形成双系统详解: 需要软件EasyBCD2.0 和linux ISO系统镜像 安装前准备工作: 1 一个windows盘D E F任选其一都可以,将其格式化为FAT32格式,除C盘以外任意盘均可格式化FAT32,且此盘必须小于32GB,否则无法格式化FAT32。 2 磁盘最后末端要有未分配的空间,如果没有可利用WIN7 右键计算机—管理—磁盘管理—选择最后面的盘符右键单击选择删除卷(也就是删除相应盘符,建议删除最后一个盘符)。这样就有了未分配的磁盘空间,用来做linux。 3 硬盘模式调成AHCI 1将linux镜像复制到FAT32格式化的磁盘里 2用winrar解压软件,将镜像中的images 和ioslinu两个文件夹提取出来,与linux镜像一同放置在FAT32盘的根目录。原来镜像还要保留 3 isolinux文件夹中的initrd.img和vmlinuz两个文件复制到FAT32盘的根目录,同时也复制到C盘根目录下。 4 安装EasyBDC程序,一路默认安装即可。 5 运行EasyBDC程序出现第一个界面是问你将EasyBDC的配置文件放置在哪个盘里,随便选择即可,下面两个不用选中,我选择的是C盘,然后右下角确定。 6 进入easyBCD操作页面,

上图中当点击第4个的时候会出现一个记事本文本框,将以下代码输入进去。 title install linux root (hd0,1) kernel (hd0,1)/isolinux/vmlinuz initrd (hd0,1)/isolinux/initrd.img 将上述代码复制粘贴进出来的文本框内即可,其中红色部分是可以更改的仅仅代表一个名字,我将其修改为我的系统名字centOS了。如果你的系统没有100M的保留分区那么请将上述代码中的1改为0。 7 点击EasyBCD右上角的save 保存此时可以关闭EasyBCD了。 8 重新启动电脑不要选择WIN7 而选择NeoGrub Bootloder 9此时就可以按照图形界面开始安装,在选择安装文件位置的地方时选择你的FAT32的盘符,然后next即可 其余都是常识性的东西了! Linux分区 第一个/Boot 100M 即可 第二个/ 5G 即可 第三个/swap 你实际内存的2倍。如果内存2G 那么相等即可。 上述分区仅供参考,因实际而酌情考虑。 FAT32在linux下的盘符: 在WIN7下查看右键计算机—管理—磁盘管理—通过这里查看你的FAT32盘是否是主分区 1我的FAT32是主分区: 如果你的盘里有系统保留分区100M 那从C盘开始hda1—D盘hda2—E盘hda3—F盘hda4 2 我的FAT32是逻辑分区: 那么观察你的FAT32是第几个逻辑分区,如果是第一个逻辑分区那么盘符就是hda5,同样以此类推,第二个逻辑分区是hda6,第三个hda7

linux的步骤 在windows下的虚拟机中安装linux

在VMware workstation中安装linux的步骤 在windows下的虚拟机中安装linux 近段时间,由于要做ARM 的开发,就想到了装个Linux系统。VMware workstat ion是一个不错的选择。正好手边有VMware workstation4.5.3版本的,旧是旧了点,想着应该不影响性能吧。 VMware workstation就是一个虚拟机软件,它可以在你现有的操作系统上虚拟出一个新的子机,这个子机一方面是建立在你正在运行的操作系统之上的,同时,它又拥有自己独立的CPU,硬盘,内存及各个硬件,当然,这些都是虚拟出来的,虚拟子机的CPU是通过i386的保护模式实现的,虚拟的硬盘其实就是母机上的一个文件,内存当然是从物理中划出一块,别的如网络设备也都是通过某种途径实现的.有了VMware workstation,就可以在一台机器上真正同时运行两个以上的独立操作系统,一个是原始的操作系统,一个运行于虚拟机上,前者称之为母机,后者为子机. 我的笔记本配置如下:迅驰1.7Ghz,40G硬盘,512M内存(最低要求为96 M),Windows XP. 1。先将VMware workstation4.5.3装载到机子上,按照提示步骤就OK了。(注:不知道为什么,装的时候挺容易,但卸载就很麻烦了。不能修复,也卸载不干净,让我反复恢复系统才终于搞定) 2。建立虚拟机 A,打开VMware workstation,选择NewVirtual Machine(新建虚拟机),弹出虚拟机创建菜单 B,按照安装向导的提示: ●TYPICAL(典型) → ●LINUX----Virtual machine name(虚拟机名字)中输入要建立的虚拟机的名 字并在Location(位置)中选择虚拟机的安装位置(这里选择一个有比较大的空间安装)→ ●选择网络连接Use bridged net-working(使用路由网络) → ●点击finish(完成),返回VMWARE主界面。 这样LINUX虚拟机就建好了。 3。要安装redhat linux首先要有安装软件,光盘或者ISO 镜像文件。这里,我下载了redhat linux 9.0 的ISO镜像(1.72G),从硬盘安装。 4。安装操作系统 ●点击虚拟(M)→ ●设置(S)→ ●在Hardware(硬件)选项中选中CD-ROM1→ ●在右边的Connection(连接)选项中选择使用ISO镜像→ ●点击Browse(预览)按钮,找到放置ISO文件的目录,打开第一个ISO镜像 → ●在Virtual device mode(虚拟设备节点)选择虚拟设备的接口方式,选择I DE0:0项-→ ●点击确定返回到虚拟机界面下-----然后点击Power ON启动这台虚拟机。

如何在Linux中使用gdb调试C程序

如何在Linux中使用gdb调试C程序 无论多么有经验的程序员,开发的任何软件都不可能完全没有bug。因此,排查及修复bug 成为软件开发周期中最重要的任务之一。有许多办法可以排查bug(测试、代码自审等等),但是还有一些专用软件(称为调试器)可以帮助准确定位问题的所在,以便进行修复。 如果你是C/C++ 程序员,或者使用Fortran 和Modula-2 编程语言开发软件,那么你将会很乐意知道有这么一款优秀的调试器- GDB - 可以帮你更轻松地调试代码bug 以及其它问题。在这篇文章中,我们将讨论一下GDB 调试器的基础知识,包括它提供的一些有用的功能/选项。 在我们开始之前,值得一提的是,文章中的所有说明和示例都已经在Ubuntu 14.04 LTS 中测试过。教程中的示例代码都是 C 语言写的;使用的shell 为bash(4.3.11);GDB 版本为7.7.1。 GDB 调试器基础 通俗的讲,GDB 可以让你看到程序在执行过程时的内部流程,并帮你明确问题的所在。我们将在下一节通过一个有效的示例来讨论GDB 调试器的用法,但在此之前,我们先来探讨一些之后对你有帮助的基本要点。 首先,为了能够顺利使用类似GDB 这样的调试器,你必须以指定的方式编译程序,让编译器产生调试器所需的调试信息。例如,在使用gcc 编译器(我们将在本教程之后的章节用它来编译C 程序示例)编译代码的时候,你需要使用 -g 命令行选项。 IT网,http://it 想要了解gcc 编译器手册页中关于 -g 命令行选项相关的内容,请看这里。 下一步,确保在你的系统中已经安装GDB 调试器。如果没有安装,而且你使用的是基于Debian 的系统(如Ubuntu),那么你就可以使用以下命令轻松安装该工具: sudo apt-get install gdb 在其他发行版上的安装方法,请看这里。 现在,当你按照上述的方式编译完程序(gcc -g 命令行选项),同时也已经安装好GDB 调

GDB调试及实例

GDB调试及实例 一:列文件清单 1.List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。 (gdb)set args –b –x (gdb) show args backtrace命令为堆栈提供向后跟踪功能。 Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 三:显示数据 利用print 命令可以检查各个变量的值。 (gdb) print p (p为变量名) whatis 命令可以显示某个变量的类型 (gdb) whatis p type = int * print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容: l 对程序中函数的调用 (gdb) print find_entry(1,0) l 数据结构和其他复杂对象 (gdb) print *table_start $8={e=reference=’\000’,location=0x0,next=0x0} l 值的历史成分 (gdb)print $1 ($1为历史记录变量,在以后可以直接引用$1 的值) l 人为数组 人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内存中在变量h后面的10个整数,一个动态数组的语法如下所示: base@length 因此,要想显示在h后面的10个元素,可以使用h@10: (gdb)print h@10 $13=(-1,345,23,-234,0,0,0,98,345,10)

wingrub硬盘安装linux入门教程

机器上最好有一个FA T32文件格式的分区,比如本例中ISO文件放在FA T32格式的D盘下,然后用解压工具进入ISO文件中的isolinux目录,复制vmlinuz和initrd.img两个文件; 在D盘下新建一个文件夹名称为linux,将vmlinuz和initrd.img两个文件拷到该目录下,注意该目录不要放其他任何文件 一、安装WinGrub WinGrub为在Windows下面的一个系统引导管理程序,可以用它来管理进入多个操作系统。下载地址为: https://www.360docs.net/doc/2013811444.html,/main/files/WINGRB0206.EXE 下载后安装到硬盘上即可。 二、用WinGrub安装Grub 1、打开 wingrub程序,选择 tools菜单,然后点击 install grub ,出来一个对话框,并按附图填写,然后install: 2、查看tools-Partition list,记录下D盘对应的Name,比如为(hd0, 4),在下一步将会用到。

三、配置Grub Grub默认安装在C:\Grub\下面,MENU.LST为配置文件,用文本编辑器打开该配置文 件,修改成如下内容: 引用: timeout 10 title FC5install root (hd0, 4) #(hd0,4) D盘 kernel (hd0, 4)/linux/vmlinuz initrd (hd0, 4)/linux/initrd.img title WindowsXp root(hd0, 0) makeactive chainloader +1 以上几行应该比较好理解: timeout为等待的时间,即10s, title即为看到的标题,即可以选择FC5install或者WindowsXp进入,之后的三行为进入(hd0,4)(本文例子等价于D盘)的根目录, 然后分别调用D:\linux目录下面的vmlinuz和initrd.img,即可以进入跟

在windowsXP下装linux(硬盘版)

想在笔记本上装linux便于学习,在网上搜了个比较详细的方法介绍,感谢下作者写这么仔细,让我这菜鸟顺利装好;记录下。。。。 一、关于系统引导管理器的简单介绍; wingrub 是一款系统引导管理程序,和windows的ntloader 相似,比如我们在安装windows 98 后,又安装了windows 2000,我们在机器启动的时候,会看到有两个菜单,一个是windows98的,另外是windows 2000的; 系统引导管理器,相当于一个容器,把机器中所有的系统的引导都装载在管理器中,管理所有的系统的引导和启动,这样方便了我们在一台机器上安装多个操作系统,并且我们有绝对的能力来控制在机器中的所有系统的引导;比如在开机的时候,出来一个菜单,让我们选择所进入的操作系统; 系统引导管理器grub就是一个多操作系统的引导管理器;wingrub是grub的windows 版本; 目前我所接触过的系统引导管理器有: grub 目前几乎有的Linux操作系统,都采用grub 作为默认的引导管理器;能引导Linux ,也能引导Winodws,功能强大,几乎无所不能;配制简单方便,建议大家使用;而我们目前做以介绍的wingrub,就是grub的windows版本,用法和windows的grub没有太大的区别,在windows中,只是轻点鼠标,就能安装上,使用和配置和Linux版本没有太大的区别; lilo 这个是linux 最老的引导管理器,能引导linux ,也能引导windows ;由于历史设计的原因,使得lilo一度是落后于grub ;不过目前又一些发行版做为默认的系统引导,比如Slackware ; yaboot 系统引导管理器,这个是用在powerpc架构机器上的,对普通的X86机没有任何用处,能引导Unix类的操作系统,也能引导MACOS ; 所以对于我们来说,grub是最实用的,因为他能管理多个系统,而且还能在windows中用;这也是我们在安装Linux的时候,选择wingrub的理由; 二、wingrub的安装: 1、下载地址: https://www.360docs.net/doc/2013811444.html, 或: https://www.360docs.net/doc/2013811444.html,/main/files/WINGRB0206.EXE 在上面的网址中,有下载页面,里面说的就是wingrub; 2、安装: 1]安装grub软件到机器中,点鼠标应该会吧,就直接按它默认的安装,下一步、下一步就安装好了;没有什么难的看几张图;

GDB基本命令

1. 本文介绍使用gdb调试程序的常用命令。 主要内容: [简介] [举例] [其他] [简介] ============= GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如ddd这样的图形化的调试端。 一般来说,GDB主要完成下面四个方面的功能: (1)启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 (2)可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式) (3)当程序被停住时,可以检查此时你的程序中所发生的事。 (4)动态的改变你程序的执行环境。 [举例] ============= *启动gdb $gdb 这样可以和gdb进行交互了。 *启动gdb,并且分屏显示源代码: $gdb -tui 这样,使用了'-tui'选项,启动可以直接将屏幕分成两个部分,上面显示源代码,比用list方便多了。这时候使用上下方向键可以查看源代码,想要命令行使用上下键就用[Ctrl]n和[Ctrl]p. *启动gdb调试指定程序app: $gdb app 这样就在启动gdb之后直接载入了app可执行程序,需要注意的是,载入的app程序必须在编译的

时候有gdb调试选项,例如'gcc -g app app.c',注意,如果修改了程序的源代码,但是没有编译,那么在gdb中显示的会是改动后的源代码,但是运行的是改动前的程序,这样会导致跟踪错乱的。 *启动程序之后,再用gdb调试: $gdb 这里,是程序的可执行文件名,是要调试程序的PID.如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。program应该在PATH环境变量中搜索得到。 *启动程序之后,再启动gdb调试: $gdb 这里,程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID,是要调试程序的PID.这样gdb就附加到程序上了,但是现在还没法查看源代码,用file命令指明可执行文件就可以显示源代码了。 **启动gdb之后的交互命令: 交互命令支持[Tab]补全。 *显示帮助信息: (gdb) help *载入指定的程序: (gdb) file app 这样在gdb中载入想要调试的可执行程序app。如果刚开始运行gdb而不是用gdb app启动的话可以这样载入app程序,当然编译app的时候要加入-g调试选项。 *重新运行调试的程序: (gdb) run 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和> )和shell通配符(*、?、[、])在内。

windows上安装linux

一、不得不知道的一件事 相信中国大多数个人用的电脑在买回来时已经安装了Windows,并且大家习惯了用Windows,而且有很多人会想当然地认为电脑就是Windows,运行电脑就是要运行那个Windows。 但事实是,你买回来的电脑本身是一台“干净”的电脑,是一堆电子器件,就像每个人刚从娘胎里生下来的时候只是一个肉身,没有穿衣服也没有戴帽子。而操作系统是后来安装上去的软件,就象每个人慢慢地会穿各种各样的衣服一样,目前全世界操作系统至少有三百种(我个人没去统计过,但我猜实际数目也可能有几千种),但最主流的只有Windows、Linux、Unix等一些,虽然大家各有各的名字,甚至外表看起来可能千奇百怪各有不同,但实现的功能是相同的,即让每个人能通过鼠标、键盘、麦克风等各种工具把数据输入到电脑里去,同时让每个人能通过电脑屏幕甚至电视机屏幕查看到电脑里的数据。 对了,这就是操作系统,它的功能是:让每个人能通过鼠标、键盘、麦克风等各种工具把数据输入到电脑里去,同时让每个人能通过电脑屏幕甚至电视机屏幕查看到电脑里的数据,或者通过音箱把电脑里的歌曲播放出来给大家听。 /************关于本文档******************************************** *filename: 如何在安装了Windows操作系统的电脑上安装Linux操作系统 *purpose: 如何在安装了Windows操作系统的电脑上安装Linux操作系统,实现多操作系统共存 Linux爱好者Linux知识传播者SOHO族开发者最擅长C语言编程 *date time:2006-07-08 22:20:00 *Note: 任何人可以任意复制代码并运用这些文档,当然包括你的商业用途 * 但请遵循GPL *Hope:希望越来越多的人贡献自己的力量,为科学技术发展出力 *********************************************************************/ 二、以下是我之前回答一些朋友的问题时的几个问答: 1、linux是什么? 分析:这个问题是完全不知道linux的人才会提出来的,提问者可能长这么大就一直用的是Windows。

LINUX gdb调试命令手册

常用的gdb命令 backtrace 显示程序中的当前位置和表示如何到达当前位置的栈跟踪(同义词:where)breakpoint 在程序中设置一个断点 cd 改变当前工作目录 clear 删除刚才停止处的断点 commands 命中断点时,列出将要执行的命令 continue 从断点开始继续执行 delete 删除一个断点或监测点;也可与其他命令一起使用 display 程序停止时显示变量和表达时 down 下移栈帧,使得另一个函数成为当前函数 frame 选择下一条continue命令的帧 info 显示与该程序有关的各种信息 jump 在源程序中的另一点开始运行 kill 异常终止在gdb 控制下运行的程序 list 列出相应于正在执行的程序的原文件内容 next 执行下一个源程序行,从而执行其整体中的一个函数 print 显示变量或表达式的值 pwd 显示当前工作目录 pype 显示一个数据结构(如一个结构或C++类)的内容 quit 退出gdb reverse-search 在源文件中反向搜索正规表达式 run 执行该程序 search 在源文件中搜索正规表达式 set variable 给变量赋值 signal 将一个信号发送到正在运行的进程 step 执行下一个源程序行,必要时进入下一个函数 undisplay display命令的反命令,不要显示表达式 until 结束当前循环 up 上移栈帧,使另一函数成为当前函数 watch 在程序中设置一个监测点(即数据断点) whatis 显示变量或函数类型

GDB命令分类详解 一:列文件清单 (2) 二:执行程序 (2) 三:显示数据 (2) 四:断点(breakpoint) (3) 五.断点的管理 (3) 六.变量的检查和赋值 (4) 七.单步执行 (4) 八.函数的调用 (4) 九.机器语言工具 (4) 十.信号 (4) 十一.原文件的搜索 (5) 十二. UNIX接口 (5) 十三. 命令的历史 (5) 十四. GDB帮助 (5) 十五. GDB多线程 (6) 十六. GDB使用范例 (7) 一:列文件清单 1.List (gdb) list line1,line2 二:执行程序 要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和>)和外壳通配符(*、?、[、])在内。 如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。 利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。 (gdb)set args –b –x (gdb) show args backtrace命令为堆栈提供向后跟踪功能。 Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 三:显示数据 利用print 命令可以检查各个变量的值。 (gdb) print p (p为变量名) whatis命令可以显示某个变量的类型 (gdb) whatis p type = int * print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容:

相关文档
最新文档