Linux内核调试
Linux内核调试
1 printk
[1] 使用范围
除在系统启动过程中,终端未初始化之前, 其他任何时候,任何地方都可以调用它.
[2] 记录等级
KERN_EMERG, KERN_ALERT, KERN_CRIT, KERN_ERR, KERN_WARNING, KERN_NOTICE, KERN_INFO, KERN_DEBUG.
若不指定记录等级,函数会选变量default_message_loglevel指定的等级,该变量被初始化为DEFAULT_MESSAGE_LOGLEVEL(目前为KERN_WARNING).
[3] 消息去向
按以下顺序进行:
Step1 如果klogd和syslod都在运行,内核信息被追加到/var/log/messages(或者其他地方,依据syslogd的配置). 否则
Step2 依据变量console_loglevel的值来决定是否把内核消息打印到当前终端(text-mode terminal, a serial port, or a parallel printer). 如果记录等级小于console_loglevel整数变量的值,则内核信息一次一行被发送到终端.
*** 无论在Step1和Step2中都可以通过dmesg命令来查看/proc/kmsg中的内核信息.
*** 只有在console下才有可在终端中打印出来(ctrl+alt+F1…F6),在Gnone或KDE下不可以.
[4] 查看并修改重要变量的值
变量
初始值
查看当前值
修改方法
console_loglevel
DEFAULT_CONSOLE_LOGLEVEL
$ cat /proc/sys/kernel/printk
First one
(1) sys_syslog系统调用
(2) 启动klogd时用-c选项来指定console_loglevel的值
(3) $ echo 8 > /proc/sys/kernel/printk
default_message_loglevel
DEFAULT_MESSAGE_LOGLEVEL
$ cat /proc/sys/kernel/printk
second one
(1) $ echo 8 > /proc/sys/kernel/printk
[5] 记录缓冲区
内核信息被保存在一个LOG_BUF_LEN大小的环形队列中. 该缓冲区大小可以在编译时通过CONFIG_LOG_BUF_SHIFT进行调整.在单处理器的系统上其默认值为16Kb.
[6] Linux系统日志
syslogd这个守护进程根据/etc/syslog.conf,将不同的服务产生的Log记录到不同的文件中.
LINUX系统启动后,由/etc/init.d/sysklogd先后启动klogd,syslogd两个守护进程。
其中klogd会通过syslog()系统调用或者读取proc文件系统来从系统缓冲区(ring buffer)中得到由内核printk()发出的信息.而syslogd是通过klogd来读取系统内核信息.
1> 所
相关文档:
Linux 同步方法剖析
内核原子,自旋锁和互斥锁
文档选项
将此页作为电子邮件发送
级别: 中级
M. Tim Jones, 顾问工程师, Emulex
2007 年 11 月 19 日
在学习 Linux® 的过程中,您也许接触过并发(concurrency)、临界段(critical section)和锁定,但是如何在内核中使用这些概念呢?本文讨 ......
安装步骤
1先安装好第一个mysql :
#tar zxvf mysql*.tar.gz
#cd mysql*
#groupadd mysql
#useradd -g mysql mysql
#./configure --prefix=/usr/local/mysql #make
#make install
#scripts/mysql_install_db
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/var
#chgr ......
CPU查看:
1、 # dmesg | grep CPU
Initializing CPU#0
CPU: Trace
cache: 12K uops
CPU: L1 I-cache: 0K, L1 D-cache: 16K
CPU: L2
cache: 256K
Intel machine check reporting enabled on CPU#0.
CPU: After generic, caps: bfebfbff 00000000 00000000 00000000
CPU ......
redhat9下安装VMware Tools
下面是安装步骤:
1.启动Rad Hat 9.0(图形界面方式登陆),并且以管理员的身份登陆。
2.在VMware虚拟机的菜单中点击:虚拟机->安装VMware 工具->install。
3.Red Hat 9.0自动挂载VMware Tools的虚拟光驱,并显示在桌面。
4.进去VMware Tools的虚拟光驱里,把VMwareTools-5.5.1-19175.tar ......
1、vi /etc/resolv.conf
增加以下内容:
nameserver DNSserver_ip_address1
nameserver
DNSserver_ip_address2
如下:
[root@REDHATAS5 /]# cat /etc/resolv.conf
nameserver 192.168.88.1
2、测试DNS是否生效
[root@Develop-Server ~]# nslookup www.baidu.com
Server: &nb ......