- 博客(45)
- 收藏
- 关注
转载 Linux 引导过程内幕
http://www.ibm.com/developerworks/cn/linux/l-linuxboot/LINUX启动流程
2014-05-06 17:33:11 876
转载 Linux探针
LINUX调试、跟踪可能有用的信息http://oss.org.cn/kernel-book/ldd3/ch04s06.html
2014-02-15 11:48:32 2243
转载 WEB服务实现方案REST\SOAP\XML-RPC
这篇文章介绍了REST和SOAP的区别http://www.ibm.com/developerworks/cn/webservices/0907_rest_soap/
2014-02-13 13:47:46 618
原创 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 3596
原创 Concurrency Runtime微软的并发运行时机制
微软在VS10中加入了Concurrency Runtime namespace来支持C++的异步编程,简化了并发编程机制。
2013-09-05 08:35:18 766
原创 DLL中申请内存及释放的机制。
DLL中用调用malloc申请的内存,会在DLL模块freelibrary的时候,由操作系统回收,自动失效,这点要注意,一般按谁申请谁释放的原则来进行内存的申请及回收。
2013-08-30 17:36:07 1468
原创 VC编译字符串常量是否合并
在VC中使用如下代码char * pStr1 = "abcdef";char * pStr2 = "abcdef";编译后pStr1和pStr2指向相同的地址,编译器将两个"abcdef"字符串进行了合并。VC中控制这个合并的编译选项是/GF,启动字符串池,在默认的情况下都是启用的。VS2010中可以通过/GF-选项来关闭。
2013-08-20 10:31:54 792
原创 锁的简单实现
__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 515
原创 Intel parallel studio XE工具集
Intel parallel studio XEINTEL的测试工具,其中的Inspector是一个内存、线程错误检查器,能检查多线程、并发情况下的一些错误。记录一下,如果有此类使用场景,说不定可以用到。
2013-08-13 08:55:19 1479
原创 SWIG
SWIG是个帮助使用C或者C++编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。在多语言混合编程的环境下,可以适用,记录一下,有需要的时候来看看怎么用。
2013-08-05 11:24:13 451
原创 COM组件使用
VC可以创建COM组件的包装类,文件COM组件的使用。在类向导中添加类,选择来自文件,添加自己需要包装的组件,例如添加一个脚本解析类,添加c:\windows\system32\msscript.ocx,添加组件中的IScriptControl接口,生成CScriptControl类,通过以下代码来使用:CoInitialize(NULL); CScriptControl Scr
2013-07-04 09:31:21 1331
原创 Pin tool编写流程
为了实现一个特定的调试功能,学习了一下Pin tool的编写,由于只是一个临时性的工作,怕时间长了忘记,特记录下来。其实Pin tool的编写还是相对比较容易的,因为有很多的例子程序可以参考,只要明白Pin的工作流程就可以了。Pin tool由int main(int argc, char * argv[])函数开始,由NMAKE编译选项编译成特定的动态链接库,如果要编译自己的动态链接库,
2013-05-31 16:33:15 7269 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 10168 1
原创 X86处理器浮点数操作的问题
在工作中遇到一个问题,一段汇编代码如下:fild dword ptr [eax]EAX指向的内存中为一个整数,但fild指令读入数据,ST0寄存器却为NAN,非数值。这种原因可能是由于上下文件环境对浮点运算器操作后导致浮点数据运算器的标志位或环境改变,需要重置浮点运算器。finitfinit指令会清除浮点寄存器栈和异常,在开始浮点运算前或运算结束后,进行一次finit操作可以避
2013-04-11 14:00:01 1089
原创 符号文件与调用工具
在XP环境下有一个诊断工具drwtsn32,在程序崩溃的时候,可以记录出错的信息,帮助定位问题。下面是drwtsh32.chm中的帮助内容:当 Windows 中出现程序错误时,系统将搜索错误处理程序。程序错误处理程序处理程序运行过程中出现的错误。如果系统找不到程序错误处理程序,系统将验证是否该程序当前没有被调试,并认为错误没有被处理。如果系统找不到程序错误处理程序,系统将验证是否该程序当
2013-02-21 09:53:28 265
原创 Lex和Yacc
词法分析和语义解析。Flex是GNU组织的一个Lex实现,在使用中发现其中的-c和-n参数选项无效。在匹配上规则后,FLex会将匹配的内容输出到屏幕上,如果不想输出内容,可以重新定义ECHO宏来屏蔽输出#define ECHO定义ECHO宏为空就行了。
2013-01-11 10:35:41 400
转载 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 2006
原创 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 1890
原创 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 553
原创 VC直接编译数据文件到程序中。
源程序中的全局变量会编译进.data段,例如数据表,如果一个数据表非常大,在源文件中用源代码的形式表现出来非常麻烦,可以用一种变通的方法来处理:把这个数据表放在一个二进制文件中,用nasm汇编工具中的incbin伪指令来引入这个二进制文件,并编译成vc格式的obj文件,vc程序链接进目标程序就可以按数组的方式来使用这个二进制文件中的数据了。=========================
2013-01-11 10:31:34 1029
转载 DLL动态链接库共享数据段的问题
#pragma comment(linker, "/section:.shareseg,rws")加入这行预编译指令可以使指定的段.shareseg加上read,write, share属性,即读写共享,在这个数据段中的数据,在所有加载该dll的进程内共享。今天在使用的时候发现一个问题,如果在"/section:.shareseg,rws"这段.shareseg,后面加上一个空格的话,即这
2013-01-11 10:29:37 953
转载 让自己的函数在main函数之前执行
最近在处理一段代码的时候遇到一个问题:一个数据段的指针需要重新设置,想让这个过程用独立的代码实现,而不在main函数中添加新的代码,这就需要一种能在main函数之前运行的机制,网上查了一下,还真有。 以下内容摘自网络 在 gcc 中#include __attribute((constructor)) void before_main(){printf("%s\n"
2013-01-11 10:28:54 567
转载 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 1038
原创 WindowsXP搜索功能
Windows XP的默认搜索中的搜索文件包含特定字符的时候,只会搜索TXT文件类型,如果其他文件是文本文件类型,但是扩展名不是系统默认的类型(txt、log等),搜索执行时为了加快搜索速度,并不会搜索其他类型文件的内容。 但有时候需要搜索其他类型文件,可以更改注册表内容:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Co
2009-11-09 14:04:00 1060
原创 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 2409
原创 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 537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人