Inspector XE 2011可以实现与GDB调试器的无缝连接

英特尔® Inspector XE 2011 支持二大类错误检查:内存检查和线程检查。

注意:这种检查是动态的(当然另外一种SSA(Static Security Analysis)是静态的,由Composer XE 2011扫描代码完成,结果在Inspector XE中显示。此种方法不在本文讨论之范围),也就是说由工具来运行目标应用程序,检测错误,事后显示错误报告。动态检查一般不“干预”程序的执行。

有时程序员希望能够让程序停留在错误行,加以调试。那么Inspector XE能否做到这一点吗?

答案是肯定的,而且可以做到无缝连接。步骤如下:

1. 建立命令行环境

[root@kentsfield-01 problem_report]# source /opt/intel/inspector_xe_2011/inspxe-vars.sh

Copyright (C) 2009-2011 Intel Corporation. All rights reserved.

Intel® Inspector XE 2011 (build 148563)

2. 检查参数选项,如

Inspxe-cl –knob-list mi3

其中有: 

appdebug

   Break application for debug during an analysis run.

   Default value: off

  Possible values: off on-error on-start

3. 接下来使用工具检测错误

[root@kentsfield-01 problem_report]# inspxe-cl -collect mi3 -knob appdebug=on-error -- ./test_memory.gcc

4. 遇错误会中断程序,进入GDB调试器

Used suppression file(s): []

。。。

Stopped at uninitialized read

 - waiting for debugger to connect...

 

停留在15行,遇到一个错误:使用未经初始化的变量。接下来,调试的任务就交给了GDB

类别:
如需更全面地了解编译器优化,请参阅优化注意事项

评论