本章主要讲了嵌入式Linux的调试技术。 (一)打印内核调试信息:printk Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现。 Printk函数的原型如下:asmlinkage int ...
分类:
移动开发 时间:
2016-06-27 23:19:37
阅读次数:
309
第十章主要学到嵌入式Linux的调试技术。 首先我学到了应该打印内核调试信息:printk。printk 函数在前面的章节己多政使用过。该函数的用法与printf函数类似,具不过printk函数运行内核空间,printk函数运行在用户空间。也就是说,像Linux驱动这样的Linux内核程序只能使用p ...
分类:
其他好文 时间:
2016-06-27 16:56:22
阅读次数:
178
打印基本类型 以下打印基本的数据类型, 如int, char, float等, 最后两行是以八进制和十六进制打印数字10 windows gcc输出: 设置输出宽度 设置每个整数占10个位置, 默认为右对齐 如果数字的长度比设置的宽度大, 那么会忽略我们设置的输出宽度 windows gcc输出: ...
分类:
其他好文 时间:
2016-06-26 16:41:02
阅读次数:
138
一:前言 进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道。 比如使用printf函数则需要引用#include <stdio.h>,使用STL的map容器则要#include <map>,使用socket网络编程则要#include <sys/socket.h>, 那么我考 ...
分类:
编程语言 时间:
2016-06-26 00:31:26
阅读次数:
659
大家熟知的C库函数printf函数就是一个可变参数函数,它是怎么实现的呢?不过他实现是有条件的,必须函数参数的入栈顺序为从右向左的顺序,也即函数的形参,在函数调用之前,必须是最右边的参数先入栈,并且参数都必须通过栈传递,以1个例子说明,如函数func(arg1, arg2,arg3),那么函数的堆栈 ...
分类:
编程语言 时间:
2016-06-25 06:17:35
阅读次数:
195
嵌入式Linux的调试技术 本章主要介绍如何利用开发板,Android模拟器以及一些函数、工具(gdb,gdberver以及kgdb)调试嵌入式Linux内核模块、可执行程序和共享库。 Printk函数,该函数的用法和printf函数类似,只不顾printk函数运行在内核空间,printf函数运行在 ...
分类:
移动开发 时间:
2016-06-24 14:33:01
阅读次数:
166
代码样例: 在如下的fun函数中存在printf语句,如果下面的代码片段想要达到100%的覆盖率,则需要考虑打桩printf函数,并且在桩中修改参数d所指向的值。 int fun(int a, int b) {char d[10] = "hello";//char d[10];printf("+++ ...
分类:
编程语言 时间:
2016-06-24 10:52:38
阅读次数:
240
(一) 打印内核调试信息:printk Printk函数用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间,printk函数在printk.c文件中实现。 Printk函数的原型如下:asmlinkage int printk(const char *f ...
分类:
系统相关 时间:
2016-06-19 22:53:57
阅读次数:
216
心得体会:本章主要讲嵌入式Linux的调试技术。对于复杂的Linux驱动及HAL等程序库,需要使用各种方法对其进行调试。刚开始讲了打印内核调试信息:printk,这个函数的用法与printf函数类似,只不过printk函数运行在内核空间,printf函数运行在用户空间。执行完相关的命令后,会要求选择 ...
分类:
其他好文 时间:
2016-06-16 23:03:31
阅读次数:
212
我们在C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: 例一: int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的(用三个点“…”做参数占位符),实际调用时可以有以下的 ...
分类:
其他好文 时间:
2016-06-06 16:56:27
阅读次数:
165