- 博客(8)
- 收藏
- 关注
原创 Lex和Yacc
词法分析和语义解析。Flex是GNU组织的一个Lex实现,在使用中发现其中的-c和-n参数选项无效。在匹配上规则后,FLex会将匹配的内容输出到屏幕上,如果不想输出内容,可以重新定义ECHO宏来屏蔽输出#define ECHO定义ECHO宏为空就行了。
2013-01-11 10:35:41 388
转载 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 1992
原创 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 1885
原创 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 543
原创 VC直接编译数据文件到程序中。
源程序中的全局变量会编译进.data段,例如数据表,如果一个数据表非常大,在源文件中用源代码的形式表现出来非常麻烦,可以用一种变通的方法来处理:把这个数据表放在一个二进制文件中,用nasm汇编工具中的incbin伪指令来引入这个二进制文件,并编译成vc格式的obj文件,vc程序链接进目标程序就可以按数组的方式来使用这个二进制文件中的数据了。=========================
2013-01-11 10:31:34 1022
转载 DLL动态链接库共享数据段的问题
#pragma comment(linker, "/section:.shareseg,rws")加入这行预编译指令可以使指定的段.shareseg加上read,write, share属性,即读写共享,在这个数据段中的数据,在所有加载该dll的进程内共享。今天在使用的时候发现一个问题,如果在"/section:.shareseg,rws"这段.shareseg,后面加上一个空格的话,即这
2013-01-11 10:29:37 944
转载 让自己的函数在main函数之前执行
最近在处理一段代码的时候遇到一个问题:一个数据段的指针需要重新设置,想让这个过程用独立的代码实现,而不在main函数中添加新的代码,这就需要一种能在main函数之前运行的机制,网上查了一下,还真有。 以下内容摘自网络 在 gcc 中#include __attribute((constructor)) void before_main(){printf("%s\n"
2013-01-11 10:28:54 558
转载 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 1029
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人