- 博客(18)
- 资源 (11)
- 收藏
- 关注
转载 调试代码技巧1
命令如下ulimit -culimit -c unlimitedulimited -c 1073741824 ./a.out这个时候会生成内核core文件 file core* gdb -c core* ./a.out 这种方法可以调试进程异常终止,注意编译文件时gcc 要加-O2 -g 选项
2013-06-15 21:44:52
386
原创 GDB 基本命令使用
1.启动gdb gdb 2.设置断点 b 函数名 b 行号 b 文件名:行号b 文件名:函数名 b +偏移量 b -偏移量 运行 r 显示栈帧btbt full nbt full -n 显示变量p 变量名 显示寄存器info reg 打印寄存器内容p $eaxp/c $ea
2013-01-09 21:37:22
238
原创 QT,第三个程序
#include #include #include #include int main(int argc, char *argv[]){ /* QApplication对象,管理整个应用程序用到的资源 */ QApplication app(argc,argv); /*生成对话框*/ QWidget *window = ne
2012-06-16 18:42:36
297
原创 QT 第二个程序
#include #include int main(int argc, char *argv[]){ /* QApplication对象,管理整个应用程序用到的资源 */ QApplication app(argc,argv); /*创建一个按键*/ QPushButton *button = new QPushButton("Quit
2012-06-16 18:23:26
282
原创 QT编程,第一个小程序
#include #include int main(int argc, char *argv[]){ /* QApplication对象,管理整个应用程序用到的资源 */ QApplication app(argc,argv); /*新建窗口部件*/ QLabel *label = new QLabel("Hello QT!");
2012-06-16 18:08:35
401
转载 source insight 添加宏定义
Quicker宏的添加到SI中配置方法1) 运行Source Insight,打开Project的Open Project的Base工程,如果没有该工程,则生成它;将Quicker.em加入到工程中 2) 安装触发热键和菜单,打开SI的Options的Key Assignments菜单,在Command窗口中选择Macro: AutoExpand然后对其赋一个热键,
2012-06-13 23:18:16
3162
转载 source insight 技巧3
quickmacro AutoExpand(){ //配置信息 // get window, sel, and buffer handles hwnd = GetCurrentWnd() if (hwnd == 0) stop sel = GetWndSel(hwnd) if(sel.lnFirst != sel
2012-06-13 23:08:33
1405
转载 Sourceinsight 技巧二
明: 该宏文件实现一些编码程中能会到的功能, 如添加文件头、函数说明和宏定义等, 使用时能自动添加文件名、函数名和当前日期. 使用说明: 1. Project->Open Project... 打开Base工程(该工程一般在"我的文档\Source Insight\Projects\Base"中); 2. Project->Add and Remove Pro
2012-06-13 22:48:28
361
转载 Sourceinsight 技巧一
1、缩进与tab (1)Options菜单->Preferences->Typing卡,勾掉下面两项∶ Typing tab indents line,regardless of selection,空行按tab无法前进 Typing tab replaces current selection,选定部分内容、再按tab时会清除所选 (2)Options菜单->Document O
2012-06-13 22:45:57
334
原创 打patch 命令
1.比较两个版本的不同之处diff 1.c 2.c >diffs 2.用patch命令更新文件1.cpatch 1.c diffs 3.用patch命令还原文件1.cpatch -R 1.c diffs
2012-02-02 20:29:07
344
原创 理解指针的偏移
int main(){ char str[20] = {"acnfgdfgf"}; char *p = str; while(*p) { p++; } return 0;}此段代码中,指针p指向一个char类型的字符,指针每偏移一次,跳到下一个字符。指针本身的地址没有改变,指针所指向的地址加一int main(){ char* str[5]
2012-01-31 21:10:26
867
原创 关于指针偏移
struct node { char a; int b; int c;};set_node(struct node *node1, struct node *node2){ char *p = (char *)node2; int *pint = NULL; *p = node2->a; printf("[%d]\n", *p); p+=4;
2011-11-26 06:50:50
438
原创 位的一些基本操作
/*把第 pos 位置1*/void set_bit(int pos, char *num){ unsigned char cval = 0x1; num[pos/8] |= cval }/*把第 pos 位置0*/void free_bit(int pos, char *num){ unsigned char cval = 0x1; num
2011-11-26 06:42:40
243
原创 结构体小技巧
struct node{ int a; int b; int c; int d;};int main(){ printf("[%d]\n", (int)&((struct node *) 0)->c); return 0;} 解释: 把结构体开始的位置从0开始,这样通过类型中字段的偏移量就可以直接求出该字段距离结构体开始位置的长度
2011-11-26 06:22:41
213
原创 [LINUX程序设计01]
1. grep EXIT_ *.h在当前目录下所以.h文件中搜索EXIT_开头的字符串 2.nm 命令 查看哪些函数被包含在目标文件 3.ldd 命令 查看程序需要的共享库
2011-11-13 11:01:40
212
转载 给年轻程序员的建议
导读:本文是从《Advice to young programmers》这篇文章翻译而来。译文来自外刊IT评论《给年轻程序员的建议》。文章内容如下:偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案
2011-08-03 20:42:06
191
原创 进程环境列表
#include extern char **environ;int main( void ){ int i; printf("the environment list follows:/n"); for( i = 0; environ[i] != NULL; i++ ) pri
2009-07-10 17:06:00
195
原创 文件与目录操作函数
lstat. stat, fstatint stat(const char *pathname, struct stat *buf);int fstat(int fields, struct stat *buf);int lstat(const char *pathname, struct stat *buf); 给定一个 pathname, stat函数返回一个与此命名文件有
2009-07-09 14:53:00
213
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人