驱动-内核调试,加法后打印不正常

问题描述

内核调试,加法后打印不正常



我在调试MTD驱动的时候,想不明白这打印怎么回事。

解决方案

看相关变量的定义:
loff_t:
typedef __kernel_loff_t loof_t
typedef long long __kernel_loff_t
mtd_part.offset类型为uint64_t
其真正类型为unsigned long (32bit CPU)或者unsigned long long (64bit CPU)

你的代码里面有两点需要注意:
1. part->offset + from,涉及到不同类型的数据相加,不同情况下,编译器可能会做不同的处理。
2. printk中,你的变量定义符用的是0x%x,对应的变量是int/unsigned int,打印long/long long类型数据的时候,也会涉及到类型转换导致数据丢失。

建议修改代码,可以考虑将所有的数据类型都转换成long long 或者unsigned long long进行地址运算。同时在printk中使用0x%llx来定义打印的变量。

时间: 2024-08-31 19:13:29

驱动-内核调试,加法后打印不正常的相关文章

(c语言)利用指向结构的指针先输入数据,后打印数据,为什么会出现打印出来的都是0?

问题描述 (c语言)利用指向结构的指针先输入数据,后打印数据,为什么会出现打印出来的都是0? #include #define MAXFIRST 20 #define MAXLAST 20 #define G_STORE 3 #define A_STRORE 3 #define CSIZE 4 struct name { char first[MAXFIRST]; char last[MAXLAST]; }; struct student{ struct name s_name; float g

FreeBSD中使用串行通信进行远程内核调试

探索在不影响系统性能的情况下,如何远程调试正在目标计算机上运行的 FreeBSD 内核.本文讨论如何使用串行通信端口设置调试环境.如何编译经过修改的内核代码.如何进行调试,并介绍了一些故障诊断提示. 引言 FreeBSD 是从 BSD 衍生而来的高级操作系统,BSD 则是加利福尼亚大学伯克力分校开发的 UNIX 版本.它提供了很高的性能,与其他系统的兼容性更强,并且需要的系统管理更少.FreeBSD 包含了内核级的状态式 (Stateful) IP 防火墙以及许多其他服务,如 IP 代理网关.访

使用Virtual PC进行Windows内核调试

下面以Virtual PC 2004为例,介绍一下利用Virtual PC进行Windows内核调试的详细过程. 1,下载并安装Virtual PC 2004,从略. 2,启动Virutal PC Console(控制台),创建一台新的虚拟PC,安装向导的提示配置硬盘.内存等参数. 3,在刚才创建的虚拟PC上安装操作系统,这个操作系统应该是你要调试的Windows版本.比如你想调试你的驱动程序在Windows Server 2003上出现的问题,那么就安装Windows Server 2003.

python实现查找excel里某一列重复数据并且剔除后打印的方法

  本文实例讲述了python实现查找excel里某一列重复数据并且剔除后打印的方法.分享给大家供大家参考.具体分析如下: 在python里面excel的简单读写操作我这里推荐使用xlrd(特别是读操作) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import xlrd def open_excel(fileName="simple.xls"): try: fileHandler = xlrd.op

硒鼓填充碳粉后打印空白页的原因及解决办法

在对于激光打印机的硒鼓很多朋友在原装耗材用完的时候,就会选择填充碳粉,这样可以节省办公成本.然而,有些时候硒鼓在填充碳粉后会出现打印空白情况,那出现这种情况究竟是什么引起的呢?该怎么去解决呢?笔者就在这里就手把手的教大家解决问题. 通常硒鼓填充碳粉后打印空白可能有四种原因: 故障原因一:硒鼓未装到位 解决方法:在填充碳粉后,硒鼓安装的过程中两边的销钉没有装好,这样会造成硒鼓不能完全装到位.我们从打印机中取出硒鼓,详细检查硒鼓的装配,然后再重新安装到打印机,进行打印测试. 故障原因二:硒鼓的保护罩

加粉后打印空白页的原因

  在对于激光打印机的硒鼓很多朋友在原装耗材用完的时候,就会选择填充碳粉,这样可以节省办公成本.然而,有些时候硒鼓在填充碳粉后会出现打印空白情况,那出现这种情况究竟是什么引起的呢?该怎么去解决呢?笔者就在这里就手把手的教大家解决问题. 通常硒鼓填充碳粉后打印空白可能有四种原因: 故障原因一:硒鼓未装到位 解决方法:在填充碳粉后,硒鼓安装的过程中两边的销钉没有装好,这样会造成硒鼓不能完全装到位.我们从打印机中取出硒鼓,详细检查硒鼓的装配,然后再重新安装到打印机,进行打印测试. 故障原因二:硒鼓的保

xcel o tml onverter-NPOI ExcelToHtmlConverter 将excel转换成html后打印 格式有问题

问题描述 NPOI ExcelToHtmlConverter 将excel转换成html后打印 格式有问题 问题如题描述. 目的:使用NPOI将excel转换成html,让客户可以直接打印. 问题:生成的html,或者打印的结果,部分边框不显示,文本不会换行. 代码: public byte[] XLSConvertToHtml(HSSFWorkbook workbook, string outFile) { //the excel file to convert //string fileNa

三星-uboot引导内核卡死,串口打印信息如下

问题描述 uboot引导内核卡死,串口打印信息如下 如下为串口打印信息 U-Boot 2010.12 (Mar 22 2016 - 12:44:19) for SMDK4412 CPU: EXYNOS4412 [Samsung SOC on SMP Platform Base on ARM CortexA9] APLL = 1400MHz, MPLL = 800MHz DRAM: 1023 MiB vdd_arm: 1.2 vdd_int: 1.1 vdd_mif: 1.1 BL1 versio

运行下面代码时出现空指针异常,求调试正确后的代码

问题描述 importjava.io.*;importjava.net.URI;importjava.net.URISyntaxException;importjavax.tools.*;importjavax.tools.JavaFileObject.Kind;importjava.util.*;publicclassTest_compilerapi{privatestaticvoidcompilerJava()throwsException{JavaCompilercompiler=Tool