问题标签 [totalview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 Totalview 调试器中获取 QStringList 内容
在这个问题Totalview get the value of QString中描述了如何QString
在 totalview 调试器中获取值。你知道有什么方法可以看到它的内容QStringList
吗?
arrays - 启用 OpenMP 时英特尔 Fortran 字符指针损坏
我正在为相当大的代码(天气预报模型)研究英特尔 Fortran 兼容性。在 Intel Fortran(并且只有Intel Fortran)上,一些字符数据似乎会被扰乱循环并指向它的字符指针。我最终得到的字符只包含 0 和 9。字符串c
只是"00:00:00:16 (whitespace padding....)"
作为它的内容。
每当我包含任何(死)OpenMP 代码并使用-fopenmp
编译器标志时,我都能重现该问题。我对这里发生的事情有点迷茫。您能在以下最小复制器中检测到任何编程错误吗?如果没有,我想我会提交一个编译器错误。
复制器
最小的.f90
生成文件
福特版
编译运行
..
..
之前的分析,这里只为了解这个问题的评论链
有问题的循环
模块中 ptr_c 的规范
在调试器中看到的数据 (TotalView)
编译器命令
更新
我刚刚尝试了最新的英特尔编译器版本:
结果仍然是错误的,但不同!这次我把所有的字符都归零了。
更新 2
我一直在尝试使用最小的复制器(见下文)来重现该问题,但到目前为止没有运气,即以这种方式运行时不会出现错误。但是,有一点很有趣:TotalView 显示数组的第一个地址略有不同:
我想这一定是 input 的问题c
,即使它在调试器中正确显示在grpcast_set_c
输入点。
示例.conf
debugging - totalview 只识别一些变量,可执行行
如何让 totalview 提供对代码中所有变量的访问权限?
我正在尝试使用 totalview 调试 Fortran90 程序。我使用“-g”标志编译并与英特尔的 ifort 链接。totalview 可以单步执行我的程序,但只为我的子程序中的四个变量提供“潜水”,并且许多可执行源代码行没有我可以检查以设置操作点的框。在下面声明的所有变量中,只有 cell_EW、cell_NS、area 和 pct 可用于稍后在子例程中进行潜水。
另一个例子:第 190 行不允许我设置动作点,并且 ntimes 未被识别为变量。
fortran - 如何将复杂数据发送到 TotalView 中的可视化工具?
我经常需要调试使用大量复杂数据的遗留 Fortran 代码,可用的最佳选项是 TotalView。我创建了自己的可视化工具来查看运行良好的数据(按照 TotalView在此处的说明)。它比默认的更灵活,并且能够摄取和显示复杂的数据,但 TotalView 不会通过其可视化管道发送复杂的数组。
有什么方法可以让 TotalView 能够显示复杂的数据,而无需使用额外的调试数组重新编译代码来获取绝对值?
例如,对于像以下简短示例这样的代码,我可以在 Fortran 中创建另一个数组,但我真的很想停下来检查变量my_arr
:
对于小型数组,我可以用这样的表达式来逃避:
但这不适用于任何非常大的东西,TotalView 抱怨内存。
我正在使用 TotalView 8.13。
c++ - 如何禁止我的调试器(totalview)进入标准库实现?
是否可以禁止我的调试器(totalview)进入 linux 上的标准库代码?在调试 C++ 代码时,我经常会进入标准库代码。我希望它是正确的;我对调试它不感兴趣。我只对调试我自己的(自己编写的)代码感兴趣。
例如在此函数设置断点时:
其中foo
定义为:
我不想深入了解std::make_shared
: 我想要的是直接进入函数 foo。但这似乎是不可能的。如果到达断点foo(std::make_shared<int>(6));
并且我按下“Step Into”按钮,它将首先进入“memory”头文件(标准库):
您可以双击该函数,然后放置一个断点并转到它并删除断点。这可行,但耗时且麻烦。
c++ - 调试复杂的返回语句
我正在使用 totalview 作为 linux C++ 调试器。我们代码中的函数通常看起来像这样
完成了一些初步工作并且或多或少复杂的函数bar
称为 return 语句。
这很难用 totalview 进行调试,因为不能轻易观察到有趣的返回值。Totalview 无法评估表达bar(a,b)
。我可以将代码重写为
现在,我可以在返回值处放置一个断点并观察我的函数的输入和输出bar
。
如何在不引入新(无用)变量的情况下做到这一点?