问题标签 [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.

0 投票
0 回答
176 浏览

c++ - 在 Totalview 调试器中获取 QStringList 内容

在这个问题Totalview get the value of QString中描述了如何QString在 totalview 调试器中获取值。你知道有什么方法可以看到它的内容QStringList吗?

0 投票
1 回答
308 浏览

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

0 投票
1 回答
106 浏览

debugging - totalview 只识别一些变量,可执行行

如何让 totalview 提供对代码中所有变量的访问权限?

我正在尝试使用 totalview 调试 Fortran90 程序。我使用“-g”标志编译并与英特尔的 ifort 链接。totalview 可以单步执行我的程序,但只为我的子程序中的四个变量提供“潜水”,并且许多可执行源代码行没有我可以检查以设置操作点的框。在下面声明的所有变量中,只有 cell_EW、cell_NS、area 和 pct 可用于稍后在子例程中进行潜水。

另一个例子:第 190 行不允许我设置动作点,并且 ntimes 未被识别为变量。

0 投票
1 回答
51 浏览

fortran - 如何将复杂数据发送到 TotalView 中的可视化工具?

我经常需要调试使用大量复杂数据的遗留 Fortran 代码,可用的最佳选项是 TotalView。我创建了自己的可视化工具来查看运行良好的数据(按照 TotalView在此处的说明)。它比默认的更灵活,并且能够摄取和显示复杂的数据,但 TotalView 不会通过其可视化管道发送复杂的数组。

有什么方法可以让 TotalView 能够显示复杂的数据,而无需使用额外的调试数组重新编译代码来获取绝对值?

例如,对于像以下简短示例这样的代码,我可以在 Fortran 中创建另一个数组,但我真的很想停下来检查变量my_arr

对于小型数组,我可以用这样的表达式来逃避:

但这不适用于任何非常大的东西,TotalView 抱怨内存。

我正在使用 TotalView 8.13。

0 投票
0 回答
253 浏览

c++ - 如何禁止我的调试器(totalview)进入标准库实现?

是否可以禁止我的调试器(totalview)进入 linux 上的标准库代码?在调试 C++ 代码时,我经常会进入标准库代码。我希望它是正确的;我对调试它不感兴趣。我只对调试我自己的(自己编写的)代码感兴趣。

例如在此函数设置断点时:

其中foo定义为:

我不想深入了解std::make_shared: 我想要的是直接进入函数 foo。但这似乎是不可能的。如果到达断点foo(std::make_shared<int>(6));并且我按下“Step Into”按钮,它将首先进入“memory”头文件(标准库):

您可以双击该函数,然后放置一个断点并转到它并删除断点。这可行,但耗时且麻烦。

同样的问题在这里这里被问到,对于视觉工作室,而不是对于总视图。

0 投票
1 回答
72 浏览

c++ - 调试复杂的返回语句

我正在使用 totalview 作为 linux C++ 调试器。我们代码中的函数通常看起来像这样

完成了一些初步工作并且或多或少复杂的函数bar称为 return 语句。

这很难用 totalview 进行调试,因为不能轻易观察到有趣的返回值。Totalview 无法评估表达bar(a,b)。我可以将代码重写为

现在,我可以在返回值处放置一个断点并观察我的函数的输入和输出bar

如何在不引入新(无用)变量的情况下做到这一点?