anzhsoft的技术专栏

专注分布式资源管理和大数据处理平台: Since Dec. 2013

Linux Debugging(五): coredump 分析入门

作为工作几年的老程序猿,肯定会遇到coredump,log severity设置的比较高,导致可用的log无法分析问题所在。 更悲剧的是,这个问题不好复现!所以现在你手头唯一的线索就是这个程序的尸体:coredump。你不得不通过它,来寻找问题根源。本文通过一个常见的coredump,逐步讲解如何...

2014-01-27 17:33:00

阅读数 28814

评论数 0

Linux Debugging(四): 使用GDB来理解C++ 对象的内存布局(多重继承,虚继承)

关于C++虚函数,很多博文从各个角度来探究虚函数是如何实现的,或者说编译器是如何实现虚函数的。本文通过GDB来从另外一个角度来理解C++ object的内存布局,一来熟悉语言背后编译器为了实现语言特性为我们做了什么;二来熟悉使用GDB来调试程序。 同时,本文也将对如何更好的理解C++语...

2014-01-27 13:53:27

阅读数 23951

评论数 1

C++对象模型(五):The Semantics of Data Data语义学

本文是《Inside the C++ Object Model》第三章的读书笔记。主要讨论C++ data member的内存布局。这里的data member 包含了class有虚函数时的vptr和vtable的布局情况。

2014-01-26 21:29:38

阅读数 8570

评论数 2

Linux Debugging(三): C++函数调用的参数传递方法总结(通过gdb+反汇编)

上一篇文章《Linux Debugging:使用反汇编理解C++程序函数调用栈》没想到能得到那么多人的喜爱,因为那篇文章是以32位的C++普通函数(非类成员函数)为例子写的,因此只是一个特殊的例子。本文将函数调用时的参数传递方法进行一下总结。总结将为C++普通函数、类成员函数;32位和64位进行总...

2014-01-25 16:46:38

阅读数 19553

评论数 5

Linux Debugging(二): 熟悉AT&T汇编语言

没想到《Linux Debugging:使用反汇编理解C++程序函数调用栈》发表了收到了大家的欢迎。但是有网友留言说不熟悉汇编,因此本书列了汇编的基础语法。这些对于我们平时的调试应该是够用了。     本科时候大家学的基本上都是Intel的8086汇编语言,微软采用的就是这种格式的汇编。GCC采用...

2014-01-24 23:30:29

阅读数 20416

评论数 4

Linux Debugging(一): 使用反汇编理解C++程序函数调用栈

拿到CoreDump后,如果看到的地址都是????,那么基本上可以确定,程序的栈被破坏掉了。GDB也是使用函数的调用栈去还原“事故现场”的。因此理解函数调用栈,是使用GDB进行现场调试或者事后调试的基础,如果不理解调用栈,基本上也从GDB得不到什么有用的信息。本文还可以帮助你深入理解C++函数的局...

2014-01-24 17:23:50

阅读数 30683

评论数 8

Awards and Certifications @EMC

1. Awards 1.1 0612-2012, Accurev Migration 1.2 1016-2012, Deliver Inyo RTM to Rockies 2. Certifications

2014-01-24 10:03:43

阅读数 2413

评论数 2

存储那些事儿(一):异构虚拟化一种实现SMIS

1. 背景        企业存储是企业信息系统管理很重要的组成部分。企业存储包含了大量的数据,供大量人使用。对于航空系统和金融系统来说,信息存储就更加重要了。 作为企业信息存储,扩展性是非常重要的,因为现在企业对于空间的使用越来越多。          那么一个企业可能会采用其他存储厂商的产品,...

2014-01-18 21:06:34

阅读数 12631

评论数 12

QT Mobile: 一统IOS/Andriod/WP/等移动平台的江湖

QT5.2原生态支持IOS、Andriod。以后还会支持Windows Phone。多个平台,一套代码,真正做到跨平台。移动开发者的福音来了!!!

2014-01-17 14:38:24

阅读数 10173

评论数 2

IT职场: 选择外企利与弊

IT外企工作氛围好,轻松,人性化,有比较多的培训时间,福利也不错。弊就是调薪幅度每年较固定,比不上互联网企业,这个可能是软件类企业的通病吧,但是想到悠闲的工作也便释然;所做的东西都是比较成熟的,因此可能会一叶障目不见泰山;不可能完全自主的去实现某些功能,很有可能会受限于国外的所谓架构师。

2014-01-17 12:21:58

阅读数 3756

评论数 3

Linux C 下的大文件操作

这里说的大文件指大小超过2G的文件。 小于2G的文件,用基础篇和高级篇中的函数都可以打开、读写。 大文件的打开: 在32位环境下,linux默认打开、读、写超过2G的文件会返回错误。定义如下宏可以突破这个限制,对read/write和fread/fwrite同时有效。 注意它必须定义在所有头文...

2014-01-13 16:23:44

阅读数 12015

评论数 1

Linux 共享内存 详解

一、什么是共享内存区 共享内存区是最快的可用IPC形式。它允许多个不相关的进程去访问同一部分逻辑内存。如果需要在两个运行中的进程之间传输数据,共享内存将是一种效率极高的解决方案。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传输就不再涉及内核。这样就可以减少系统调用时间,提高程序...

2014-01-13 14:27:48

阅读数 11720

评论数 0

The Singularity is Near---预测人工智能,科技走向的神书---奇点临近

比尔盖茨评价本文作者: 雷·库兹韦尔是我所知道的预测人工智能未来最权威的人。他的这本耐人寻味的书预测未来信息技术得到空前发展,将促使人类超越自身的生物极限——以我们无法想象的方式超越我们的生命。 中文版已经由机械工业出版社出版, amazon 购买衔接 这是本人研究生阶段参与翻译的。贴上译者序...

2014-01-07 12:53:08

阅读数 12169

评论数 2

使用github管理你的代码

关于为什么使用github,网上已经有很多讨论了。当然选择还有google code, Bitbucket,sourceforge。github有如下优势: 1. github更有利于开源项目的发展 source forge并没有充分体现这一点,它更像一个开源软件下载站。至于Google Code...

2014-01-04 22:31:06

阅读数 12461

评论数 2

awk 详解+实例

1. awk简介 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本...

2014-01-03 10:06:52

阅读数 12263

评论数 4

sed-加速你在Linux的文件编辑

1. Sed简介 sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使...

2014-01-03 10:01:49

阅读数 11945

评论数 3

工作中常用的Linux命令

1.从其他机器拷贝文件夹 格式: scp -r 文件夹名 用户名@机器名:/路径 范例: scp -rsearch work@zjm-testing-ps23.zjm.baidu.com:/home/work/ 2.查看哪个程序在用特定端口 格式: netstat-nap | grep 端口号 范...

2014-01-03 09:54:58

阅读数 12186

评论数 4

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