自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 BIOS启动下磁盘各引导区的引导顺序描述

BIOS通过MBR引导系统。

2015-03-05 15:42:01 3949

原创 ZeroMQ

消息队列。

2015-03-01 15:19:31 490

原创 VC6下使用dbghelp及注意事项

VC6环境下如果没有安装WDK或WINDBGTOOLS

2014-11-20 09:57:06 3328

原创 GDB一些常用功能

在GDB调试一个进程的时候,如果想查看调用进程调用的系统函数ak

2014-08-13 09:27:20 754

原创 GDB查看内存指令引用操作的示例

在GDB中,用X指令可以查看内存中的数据,最ip

2014-08-09 11:07:40 956

转载 Linux 引导过程内幕

http://www.ibm.com/developerworks/cn/linux/l-linuxboot/LINUX启动流程

2014-05-06 17:33:11 859

原创 GDB调试器在进程启动时即中断进行调试。

GDB是LINUX下的调试器,通常的用法是进程启动后

2014-05-04 16:03:59 3631

转载 Linux探针

LINUX调试、跟踪可能有用的信息http://oss.org.cn/kernel-book/ldd3/ch04s06.html

2014-02-15 11:48:32 2169

转载 WEB服务实现方案REST\SOAP\XML-RPC

这篇文章介绍了REST和SOAP的区别http://www.ibm.com/developerworks/cn/webservices/0907_rest_soap/

2014-02-13 13:47:46 601

原创 RAII

RAII:资源获取就是初始化,利用C++类的特性,对资源进行管理的一种方法,可以有效的确保资源在使用结束得到释放。一种很好的技巧。

2013-11-15 09:24:49 486

原创 wxWidgets使用XRC资源

试着使用了一下wxWidgets库,对wxWidgets调用XRC资源很感兴趣,将在WINDOWS下使用XRC资源的过程整理出来。1 先编译出wxWidgets库的Lib,如果是VC,直接使用build\msw目录下对应版本的dsw文件。2 创建自己的工程,用VC创建一个WIN32版本的程序,添加相应的CPP文件和H文件。    2 -1 一个最简单的程序应该包含一个主CPP文件,在其

2013-10-22 09:47:08 3497

原创 Concurrency Runtime微软的并发运行时机制

微软在VS10中加入了Concurrency Runtime namespace来支持C++的异步编程,简化了并发编程机制。

2013-09-05 08:35:18 738

原创 sphinx文档工具

sphinx工具创建能够以各种格式(如 HTML)自动进行分布的可维护的、样式支配的文档。

2013-09-04 19:33:09 455

原创 Qpid

Apache开源的消息中间件,一个AMQP的实现,记录一下,后续需要通讯的场境可以使用。

2013-09-03 08:21:45 593

原创 DLL中申请内存及释放的机制。

DLL中用调用malloc申请的内存,会在DLL模块freelibrary的时候,由操作系统回收,自动失效,这点要注意,一般按谁申请谁释放的原则来进行内存的申请及回收。

2013-08-30 17:36:07 1414

原创 VC编译字符串常量是否合并

在VC中使用如下代码char * pStr1 = "abcdef";char * pStr2 = "abcdef";编译后pStr1和pStr2指向相同的地址,编译器将两个"abcdef"字符串进行了合并。VC中控制这个合并的编译选项是/GF,启动字符串池,在默认的情况下都是启用的。VS2010中可以通过/GF-选项来关闭。

2013-08-20 10:31:54 778

原创 Redis数据库

Redis 是一个开源、支持网络、基于内存、键值对存储数据库,使用 ANSI C 编写。

2013-08-15 17:07:35 474

原创 锁的简单实现

__declspec(naked) int GetLock(int * pLock){ _asm { push edx push ebx mov eax, 0 mov edx, 1 mov ebx, [esp + 12] pushf lock cmpxchg [e

2013-08-13 14:46:52 497

原创 Intel parallel studio XE工具集

Intel parallel studio XEINTEL的测试工具,其中的Inspector是一个内存、线程错误检查器,能检查多线程、并发情况下的一些错误。记录一下,如果有此类使用场景,说不定可以用到。

2013-08-13 08:55:19 1441

原创 SWIG

SWIG是个帮助使用C或者C++编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。在多语言混合编程的环境下,可以适用,记录一下,有需要的时候来看看怎么用。

2013-08-05 11:24:13 434

原创 Linux下调试工具。

truss、strace或ltrace,记录下,如果有使用时方便查找。

2013-08-02 17:32:02 492

原创 VS环境下使用makefile文件编译

启动VS命令行工具,在命令行下运行nmake会调用默认的makefile文件进行编译。

2013-07-18 11:29:14 9991

原创 COM组件使用

VC可以创建COM组件的包装类,文件COM组件的使用。在类向导中添加类,选择来自文件,添加自己需要包装的组件,例如添加一个脚本解析类,添加c:\windows\system32\msscript.ocx,添加组件中的IScriptControl接口,生成CScriptControl类,通过以下代码来使用:CoInitialize(NULL); CScriptControl Scr

2013-07-04 09:31:21 1308

原创 Pin tool编写流程

为了实现一个特定的调试功能,学习了一下Pin tool的编写,由于只是一个临时性的工作,怕时间长了忘记,特记录下来。其实Pin tool的编写还是相对比较容易的,因为有很多的例子程序可以参考,只要明白Pin的工作流程就可以了。Pin tool由int main(int argc, char * argv[])函数开始,由NMAKE编译选项编译成特定的动态链接库,如果要编译自己的动态链接库,

2013-05-31 16:33:15 7207 1

转载 Windows下使用二进制插装工具Pin

Pin是Intel公司提供的一个程序插装工具,支持IA-32,Intel(R) 64和IA64架构上的Linux和Windows可执行程序。Pin允许一个工具在可执行程序的任何地方插入任意代码(用C或C++编写)。这些代码在程序运行的时候动态添加(修改内存映像)。这也使得可以将Pin附加到进程上。插装粒度指令级插桩(instruction instrumentatio),通

2013-05-21 14:19:40 10074 1

原创 X86处理器浮点数操作的问题

在工作中遇到一个问题,一段汇编代码如下:fild dword ptr [eax]EAX指向的内存中为一个整数,但fild指令读入数据,ST0寄存器却为NAN,非数值。这种原因可能是由于上下文件环境对浮点运算器操作后导致浮点数据运算器的标志位或环境改变,需要重置浮点运算器。finitfinit指令会清除浮点寄存器栈和异常,在开始浮点运算前或运算结束后,进行一次finit操作可以避

2013-04-11 14:00:01 1053

原创 符号文件与调用工具

在XP环境下有一个诊断工具drwtsn32,在程序崩溃的时候,可以记录出错的信息,帮助定位问题。下面是drwtsh32.chm中的帮助内容:当 Windows 中出现程序错误时,系统将搜索错误处理程序。程序错误处理程序处理程序运行过程中出现的错误。如果系统找不到程序错误处理程序,系统将验证是否该程序当前没有被调试,并认为错误没有被处理。如果系统找不到程序错误处理程序,系统将验证是否该程序当

2013-02-21 09:53:28 255

原创 Lex和Yacc

词法分析和语义解析。Flex是GNU组织的一个Lex实现,在使用中发现其中的-c和-n参数选项无效。在匹配上规则后,FLex会将匹配的内容输出到屏幕上,如果不想输出内容,可以重新定义ECHO宏来屏蔽输出#define ECHO定义ECHO宏为空就行了。

2013-01-11 10:35:41 378

转载 VC6中C代码生成汇编代码

在vc6中的c代码可以在编译的时候创建成一份汇编代码:settings -> c/c++ -> category选listing files,listing file type选assembly-only listing,在listing file name项指定的路径会生成与源文件同名的asm文件。

2013-01-11 10:34:03 1970

原创 pintool

intel的二进制代码监控工具。可以对二进制执行代码进行逐指令监控记录,可以记录各内部函数的调用、执行次数。编译命令:..\nmake.bat [MSVCVER=8|9|10] [TARGET=ia32|ia32e] [debug=0|1] [pin_home=]如:..\nmake.bat TARGET=ia32 proccount.dll注意:输出文件为proc

2013-01-11 10:33:11 1866

原创 Graphviz

AT&T实验室的开源工具。用来生成关系图的工具,用来绘制函数调用关系非常实用。命令行:dot -Tpng d.dot -o d.pngdot 启动命令-Txxx 输出到某种图形格式,这里输出到png,所以用-Tpngd.dot dot描述文件-o 指定输出文件d.png 输出到d.png文件dot文件:strict digraph xxx{...}形

2013-01-11 10:32:29 528

原创 VC直接编译数据文件到程序中。

源程序中的全局变量会编译进.data段,例如数据表,如果一个数据表非常大,在源文件中用源代码的形式表现出来非常麻烦,可以用一种变通的方法来处理:把这个数据表放在一个二进制文件中,用nasm汇编工具中的incbin伪指令来引入这个二进制文件,并编译成vc格式的obj文件,vc程序链接进目标程序就可以按数组的方式来使用这个二进制文件中的数据了。=========================

2013-01-11 10:31:34 984

转载 DLL动态链接库共享数据段的问题

#pragma comment(linker, "/section:.shareseg,rws")加入这行预编译指令可以使指定的段.shareseg加上read,write, share属性,即读写共享,在这个数据段中的数据,在所有加载该dll的进程内共享。今天在使用的时候发现一个问题,如果在"/section:.shareseg,rws"这段.shareseg,后面加上一个空格的话,即这

2013-01-11 10:29:37 925

转载 让自己的函数在main函数之前执行

最近在处理一段代码的时候遇到一个问题:一个数据段的指针需要重新设置,想让这个过程用独立的代码实现,而不在main函数中添加新的代码,这就需要一种能在main函数之前运行的机制,网上查了一下,还真有。 以下内容摘自网络 在 gcc 中#include __attribute((constructor)) void before_main(){printf("%s\n"

2013-01-11 10:28:54 545

转载 windbg符号加载

windbg调试器的安装使用安装:1.先安装X86 Debuggers And Tools-x86_en-us.msi调试器。2.再安装对应系统的符号文件包,如WindowsXP-KB936929-SP3-x86-symbols-full-ENU.exe,符号文件会默认安装到c:\windows\symbol目录下。3.设置符号搜索路径,添加环境变装_NT_SYMBOL_PATH和

2013-01-11 10:27:40 1005

原创 SetUnhandledExceptionFilter,设置异常处理函数

设置异常处理函数,在程序崩溃的时候,这个函数指定的函数会被调用。

2012-12-18 15:15:52 564

转载 gdb输出重定向

在gdb启动时,使用"gdb |tee -a file"就可以把gdb的所有操作及输出都定向到文件中

2010-01-05 17:16:00 1475

原创 WindowsXP搜索功能

Windows XP的默认搜索中的搜索文件包含特定字符的时候,只会搜索TXT文件类型,如果其他文件是文本文件类型,但是扩展名不是系统默认的类型(txt、log等),搜索执行时为了加快搜索速度,并不会搜索其他类型文件的内容。      但有时候需要搜索其他类型文件,可以更改注册表内容:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Co

2009-11-09 14:04:00 1037

原创 vc中关于try/catch结构的使用

在VC的Release版本中,会对try/catch结构进行优化,如果try块中没有显示的抛出异常,则会将catch块优化掉,也就是在实际运行中会捕获不到异常,如下:try{    char * p = NULL;    p[0] = 0;}catch(...){    ...}在Debug版本中会捕获到异常,但由于try中没有显式的抛出异常,catch块在

2009-09-08 14:03:00 2353

原创 Release版本调试

In   MSVC   you   can   set   all   of   your   projects   configurations   in   the   Project   Settings   dialog.     1.Select   the   All   Configurations   option   in   the   Settings   For   co

2009-09-07 14:26:00 519

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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