`

BUG Tracing

阅读更多
       今晚老大让我帮他解决一个BUG,该BUG出来得很奇怪,在MYSQL上可以,在SQLSERVER上就不行。我一听,难道又是SQLSERVER和MYSQL之间数据库的差异,怎么老是遇到这事情?

       怀着惴惴不安之心,我开始了追虫过程。建立工程之后,立马run了一下,确实是出现了那个文件。详细察看出错信息,说有列名无效
       找到出错行,一看,HQL语法中貌似有个地方不对,明明是字符串类型的比较,居然就不加''号进行比较了,这岂不是会出错。加了''之后,继续运行,同样错误。也就是说,不是这个问题。

       把HQL对应的SQL语句拿出来对照了一下,确实是没有问题的呀。这说明人家HQL正确翻译成为了SQL。所以,我刚才的怀疑是多疑的。可是当当时并不知道。

       那我干脆手写SQL代码吧。在HIBERNATE中直接写SQL返回,居然还是出现相同问题,仍然是有列名无效。

       怒了,这个列名无效是什么意思?
       google之,一堆乱七八糟的东西,没有太多有帮助的内容。正好,连到SQL SERVER服务器上看看,找到一个数据库,打开,F1,Serarch列名无效,未果。Search 列名。出来一堆信息。看到1-500疑难状态,正好点击进去,看了一下文档,页数太多。继续search列名,找到了列名无效的说明。点击进去,人家写得很清楚,确实就是由于在from的地方没有相应的列名。
      
       这下子得到答案了。预验证之。
       一时找不到联到的sqlserver数据库的密码,那就先在另一台sqlserver数据库上测试吧。找到合适的数据库,测试,OK。看看人家的表,确实是有那些字段。
       立马请来测试组的兄弟,让他把我要连到的sqlserver数据库的密码告诉我。连上sqlserver数据库,居然在它本机查询该表都会出错,看不到任何信息……
       怒了,立马转到刚才那台sqlserver数据库机器上,将这台sqlserver数据库给加过来。这回才终于可见庐山真面目,确实是缺少相应的字段。

      这怎么可能select出那些没有的字段来呢…… 出错也就是当然的啦。

       这个问题现在想起来,太简单不过了。但是一路追踪下来,也花了将近一个小时的时间。对于MS的东西,多查查他的帮助手册还是有用处的。

       编程时间不短了,想想大学四年,研究生三年,如今工作也快一年了,写程序也大概有3, 4年了吧,DEBUG一直比较痛苦,但好歹也掌握了很多种DEBUG的手段。上午解决一个问题,也费了一个多小时,怎么最近功力不升反而降了,实在是郁闷郁闷。
分享到:
评论
3 楼 LucasLee 2007-06-02  
需要逐渐总结出方法论,也许不会每次都很快解决,但总体上不会特别慢解决.
2 楼 hiwzg 2007-06-01  
嘿嘿,你这话说的:P 


lordhong 写道
知道太多,反而DEBUG考虑的方面就多了.
还不如什么都不知道或知道一点点..., 嘿嘿.
1 楼 lordhong 2007-05-31  
知道太多,反而DEBUG考虑的方面就多了.
还不如什么都不知道或知道一点点..., 嘿嘿.

相关推荐

    Python-tracing用于逐行跟踪程序执行的实用程序

    这有助于开发者观察程序的实际运行状态,尤其是在遇到复杂问题或难以复现的bug时。 Python的内置`trace`模块提供了基本的跟踪功能,但`tracing`工具提供了更高级和用户友好的界面。通过`tracing`,我们可以得到更为...

    EurekaLog v6.0.25 Enterprise Full Source

    2.A little Call-stack tracing improvment; 3.Add the SafeMM memory manager support; 4.The EurekaLog IDE integration is now set to OFF by default (to activate it use the “EurekaLog/IDE Integration” ...

    TNS-12541: TNS: 无监听程序 TNS-12560

    Tracing not turned on. Tns error struct: ns main err code: 12535 TNS-12535: TNS: 操作超时 ns secondary err code: 12560 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 Client ...

    IDA调试器跟踪功能IDA调试器跟踪功能

    为了使用 IDA 调试器跟踪功能,用户需要首先在 Debugger 主菜单下的 Trace 子菜单中选择 Tracing options,设定 Tracing Buffer Size 为 0。然后,用户可以选择指令跟踪、函数跟踪或读写-写-执行跟踪,来记录应用...

    Web应用工具库TracingFramework.zip

    Tracing Framework 是一套库、工具,用于跟踪和调查复杂的 Web 应用。...它目前只能用于特定的应用场合,并不是为应用于所有场景而设计,如果你在使用过程中遇到了问题,请呈递你的 Bug。 标签:Tracing

    go语言HttpClient,基于goz改造 相对原版改动较大,造成了不兼容原版结局.rar

    一旦这个过程中某一个环节出现问题/bug,那么查找和定位起来是相当困难的,于是乎分布式系统跟 踪系统出炉了。Google在2010年发表了著名论文《Dapper, a Large-Scale Distributed Systems Tracing Infrastructure》...

    EurekaLog_7.5.0.0_Enterprise

    1)....Fixed: Added workaround for codegen bug in Delphi 7 (possibly - other), bug manifests itself as wrong date-time in reports or integer overflows 2)....Fixed: Some MAPI DLLs may not be loaded ...

    Bochs - The cross platform IA-32 (x86) emulator

    - Improved verbose physical memory access tracing - BIOS - Fix MTRR configuration (prevented boot of modern Linux kernels) - Fix interrupt vectors for INT 60h-66h (reserved for user interrupt) by ...

    2.1 Go打造亿级实时分布式平台

    Grab分享了其测试实践,以保证软件质量和降低bug率。 6. 人员规模:Grab公司拥有300+使用Go语言的工程师,并有扩张至800人的目标。 7. 地域覆盖:Grab作为一个东南亚最大的出行平台,在7个国家和39个城市拥有710,...

    如何检测Web服务请求丢失问题1

    【如何检测Web服务请求丢失问题】\n\n在IT领域,Web服务请求丢失可能是由于多种原因造成的,如网络延迟、服务器过载、错误配置或软件bug。本文将深入探讨如何定位并解决此类问题。\n\n首先,【问题描述】中提到的...

    linux下除错和调试《self-server Linux》英文版

    **System Call Tracing**(系统调用追踪)是一种更高级的方法,允许开发者监控整个系统的所有系统调用。这通常涉及到内核级别的调试,对于分析性能瓶颈、定位bug等非常有用。例如,在内核中使用 ftrace 或 kprobes ...

    Python库 | ddtrace-0.52.0rc2-cp35-cp35m-win_amd64.whl

    其次,ddtrace库支持多种追踪协议,如Datadog Trace Agent的原生协议以及OpenTracing和OpenTelemetry标准。这些协议使得ddtrace可以与各种监控平台无缝集成,比如Datadog自身,以及其他支持这些标准的系统。 在安装...

    commonmark-0.7.0.zip

    tracer可能使用类似OpenTracing或Zipkin这样的标准协议,提供跨服务的跟踪能力。 日志关联则是另一个重要的方面。在分布式系统中,日志通常分散在各个服务节点上,这使得查找特定事件的完整上下文变得困难。tracer...

    linux程序栈回溯

    栈回溯(Stack Tracing)是调试过程中的一种常见技术,它可以帮助开发者了解程序执行流程,特别是崩溃前的函数调用序列,从而快速定位问题所在。 栈是一种数据结构,用于存储程序运行时的函数调用信息。每个线程都...

    Linux Kernel Configuration Option Reference

    请注意,在提交错误报告之前,应先阅读内核源码目录下的`README`、`MAINTAINERS`、`REPORTING-BUGS`、`Documentation/BUG-HUNTING` 和 `Documentation/oops-tracing.txt`等文档。 此外,此选项还使过时的驱动程序...

    硝烟中的Erlang(ErlangInAnger中文版)

    除了上述Erlang语言的独特优势外,文档也提到了其提供的强大的运行时问题诊断、调试和解决手段,如remoteshell、tracing和自省机制。这些工具允许开发者在系统运行时深入诊断和修复问题,甚至在必要时进行在线“手术...

    rabbitmq-server-3.7.17.zip

    6. **插件系统**:RabbitMQ支持丰富的插件机制,如RabbitMQ Tracing、RabbitMQ Shovel等,用于日志记录、消息迁移、持久化等场景。 7. **多平台支持**:RabbitMQ可在多种操作系统上运行,包括Linux、Windows、macOS...

    zipkin-server-2.12.9-exec.rar

    Zipkin 可以轻松地与 Spring Cloud Sleuth、OpenZipkin Brave、OpenTracing 等框架和库集成,使得在现有项目中启用追踪变得简单。 8. **配置与运行**: 要运行 Zipkin Server,你需要配置存储后端、监听端口等...

    rocketmq-4.9.2版本

    RocketMQ 4.9.2版本在以上基础上,可能包括了对性能的进一步优化、bug修复以及新功能的添加。通过分析源码,开发者可以深入了解其内部工作原理,定制更适合自身业务需求的解决方案。对于希望深入研究或使用RocketMQ...

    libunwind-1.2

    1. **堆栈回溯(Stack Tracing)**:`libunwind`允许程序员在运行时获取当前进程或线程的调用堆栈,这对于排查错误、追踪程序执行路径以及性能分析非常有用。 2. **寄存器状态管理**:它能够读取和恢复函数调用时...

Global site tag (gtag.js) - Google Analytics