随笔分类 -  Linux

摘要:Shell中设置 bash中 export TZ="Europe/Moscow" date -u -s "2011-10-29 21:55:00" cshell中 setenv TZ Europe/Moscow程序中设置(同样也是设置环境变量的方式) linux程序中修改时区并立即生效. setenv("TZ","Europe/Moscow",1); tzset(); 只是发现其他程序执行不会受该设置影响了.也就是该设置实际上是的环境变量只是对程序自身生效的,而ACE则直接将该选项封装为ACE_Process_Op 阅读全文
posted @ 2012-01-09 23:44 dzqabc 阅读(4837) 评论(0) 推荐(0) 编辑
摘要:新版本的录制程序终于快完工了,在添加了一个新特性“报警录制”后,就开始测试了。 一开始就不顺利:程序正常运行一段时间后就会崩溃,由于程序添加了守护进程,在崩溃后会自动重启。 因此测试得到的结果就是:程序运行一段时间后就自动重启,并不断持续;有时几个小时重启一次,有时甚至每分钟都重启。 废话少说,开始定位问题: 1.去掉自动重启功能,在gdb下运行,20多分钟后就崩溃了: 2011-10-26 1... 阅读全文
posted @ 2012-01-09 23:11 dzqabc 阅读(9206) 评论(0) 推荐(0) 编辑
摘要:linux下进程 (一) 理解Linux下进程的结构 Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是存放了程序代码的数据,假如机器中有数个进程运行相同的一个程序,那么它们就可以使用同一个代码段。 堆栈段存放的就... 阅读全文
posted @ 2011-12-15 21:46 dzqabc 阅读(8290) 评论(0) 推荐(0) 编辑
摘要:我们的最终目的是把字符串格式的时间转换为内部使用的“日历时间”,即到UTC 1970年1月1日零时的秒数。这里就存在夏令时的问题。比如俄罗斯时间2008年10月26日2:30由于夏令时的跳变会经过两次,这两次所代表的“日历时间”明显不同。如果仍按照上面的程序,由mktime()函数来决定这个时间是否处于夏令时(它会根据当前时区自动判断,在没有发生时间重叠的情况下处理是正确的)就会有问题。这时我们不能使用ttm.tm_isdst = -1了,而是明确使用ttm_tm_isdst = 1来告知mktime()现在处于夏令时,明确使用ttm.tm_isdst = 0来告知未处于夏令时。 结论:使.. 阅读全文
posted @ 2011-11-05 15:27 dzqabc 阅读(8076) 评论(1) 推荐(0) 编辑
摘要:df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl 显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19... 阅读全文
posted @ 2011-11-05 15:14 dzqabc 阅读(324) 评论(0) 推荐(0) 编辑
摘要:时间以及时区设置首先确认使用utc还是local time.UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)Local time 是你手表上的时间传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式linux可以处理UTC时间和蹩脚的Windows所使用的local time到底是使用UTC还是local time可以这样来确定:如果机器上同时安装有Linux和Windows,建议使用local time如果机器上只安装有Linux,建议使用utc确定后编辑/etc/sysconfig/clock, UTC=0 阅读全文
posted @ 2011-10-15 09:17 dzqabc 阅读(1266) 评论(0) 推荐(1) 编辑
摘要:在伟大的天朝修改host的意义不言而喻。修改host能用来做什么事情想必大家都很清楚了,比如之前一段时间著名的摩托罗拉手机论坛itfunz挂掉,通过修改host就可以正常登陆了。 在windows上修改host非常简单,其实android的也很简单,但是网上一搜,不知怎么搞的都是很复杂的过程,又是什么输命令又是什么切换的搞得头大,也许我搜到的教程是针对早期的android版本吧,早期的androi... 阅读全文
posted @ 2011-09-30 08:01 dzqabc 阅读(60889) 评论(0) 推荐(0) 编辑
摘要:使用gdb前需要加编译参数 -g 要调试C/C++的程序,首先在编译时,我们必须要把调试信息源程序信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如: gcc -g hello.c -o hello g++ -g hello.cpp -o hello 如果没有-... 阅读全文
posted @ 2011-07-12 07:38 dzqabc 阅读(7490) 评论(6) 推荐(0) 编辑
摘要:七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。 一、多线程调试 多线程调试可能是问得最多的。其实,重要就是下面几个命令: info ... 阅读全文
posted @ 2011-07-11 07:51 dzqabc 阅读(4185) 评论(0) 推荐(0) 编辑
摘要:线程有自己的寄存器,运行时堆栈或许还会有私有内存。 gdb提供了以下供调试多线程的进程的功能: * 自动通告新线程。 * \ "thread THREADNO\ ",一个用来在线程之间切换的命令。 * \ "info threads\ ",一个用来查询现存线程的命令。 * \ "thread apply [THREADNO] [ALL] ARGS\ ",一个用来向线程提供命令的命令。 * 线程有关的断点设置。 注意:这些特性不是在所有gdb版本都能使用,归根结底要看操作系统是否支持。 如果你的gdb不支持这些命令,会显示出错信息: ( 阅读全文
posted @ 2011-07-09 08:08 dzqabc 阅读(9693) 评论(0) 推荐(0) 编辑
摘要:作者:破砂锅 开源的GDB被广泛使用在Linux、OSX、Unix和各种嵌入式系统(例如手机),这次它又带给我们一个惊喜。 多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持all-stop模式,调试多线程程序时,如果某个线程断在一个断点上,你的调试器会让整个程序 freeze,直到你continue这个线程,程序中的其他线程才会继续运行。这个限制使得被调试的程序不能够像真实环境中那样... 阅读全文
posted @ 2011-07-09 08:05 dzqabc 阅读(8192) 评论(0) 推荐(0) 编辑
摘要:在使用gdb 调试 程序 的时候,有时候需要设定多个断点,重复执行某些操作,而这些操作写起来比较麻烦,这个时候就应该想起来用gdb命令 脚本了,它能够很好的完成这些工作。有两种方式来使用脚本:1)启动gdb时候gdb在启动的时候,会在当前目录 下查找".gdbinit"这个文件作为初始化脚本 ,并把它的内容作为gdb命令进行解释,所以如果我把脚本命名为".gdbinit",这样在启动的时候就会处理这些命令。2)gdb运行期间可以使用 source script-file 来解释gdb命令脚本script-file 阅读全文
posted @ 2011-07-06 00:21 dzqabc 阅读(1141) 评论(0) 推荐(0) 编辑
摘要:################################################################################## # # # STL GDB evaluators/views/utilities # # # ########################################## # # The new GDB commands: #... 阅读全文
posted @ 2011-07-06 00:16 dzqabc 阅读(802) 评论(0) 推荐(0) 编辑
摘要:UNIX 系统的 shell 相当多样,例如 Bourne Shell(sh)、Bourne-Again Shell(bash)、Korn Shell(ksh)、C Shell(csh)等等;以下简述常见的 UNIXshell。 Bourne Shell(sh):这是历史悠久且重要的 UNIX shell,是由贝尔实验室的研究员 Stephen Bourne 为第七版的 UNIX 所创造,这种 shell 的执行档扩展名就是 .sh。 •Bourne-Again Shell(bash):光从名称就能猜出 bash 与 sh 是有渊源(甚至说「血缘」)。bash 是由 Brian Fox 于 1 阅读全文
posted @ 2011-05-12 07:32 dzqabc 阅读(369) 评论(0) 推荐(0) 编辑
摘要:templateinline static void Dumpvector(const std::vector &vvector){ std::vector ::iterator pvectorIt = vvector.begin(); for(; pvectorIt != vvector.end(... 阅读全文
posted @ 2011-04-15 00:48 dzqabc 阅读(664) 评论(0) 推荐(0) 编辑
摘要:首先检查系统的language设置的是否是中文。 在终端下输入命令∶ # echo $LANG 若不是,则需要修改环境变量。修改环境变量有多种方法,简单总结三种比较常用的∶ 1>只针对当前终端的修改,对其他用户没有影响 在命令行下输入∶ # export LANG=ja_JP.UTF-8 这种修改只对当前终端有效,终端退出后即结束。若想要查看系统支持的语言和字符集,可以用命令 # locale -a 2>针对当前用户的修改,修改当前用户的bash配置文件。当用户一登陆即export进LANG变量 先进入当前用户的home目录,如root用户的home目录是/root/,其他用户的h 阅读全文
posted @ 2011-03-20 23:56 dzqabc 阅读(24082) 评论(4) 推荐(0) 编辑
摘要:时间和日期通常能确定时间和日期对一个程序来说是非常有用的。程序可能希望记录它运行的时间,或者可能需要在某些时候改变它的运行方式。例如,一个游戏可能拒绝在工作时间运行,或者一个定时备份程序可能想等到每天的凌晨才开始一个自动备份。所有的UNIX系统都使用同一个时间和日期的起点:格林尼治时间(GMT)1970年1月1日午夜(0点)。这是“UNIX纪元的起点”,Linux也不例外。Linux系统中所有的时间都以从那时起经过的秒数来衡量。这和MS-DOS处理时间的方法类似,只是MS-DOS纪元始于1980年。其他系统使用其他的纪元起始时间。时间通过一个预定义的类型time_t来处理。这是一个大到能够容纳 阅读全文
posted @ 2011-03-10 07:53 dzqabc 阅读(5277) 评论(2) 推荐(0) 编辑
摘要:1. 下载 http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt 2. #cat dbinit_stl_views-1.03.txt >> ~/.gdbinit 3. 若正处于gdb中,运行命令: (gdb) source ~/.gdbinit 4. 例如,如下代码: bugging.cpp # include < vector > using namespace std ; int main( ) { vector < int > vec; vec. push_back( 2) ; 阅读全文
posted @ 2011-02-22 00:20 dzqabc 阅读(4113) 评论(0) 推荐(0) 编辑