|
TotalView Debugger 特性
可选的内置内存调试
对于希望随时查找泄露、追踪堆配置和解除配置以及获取使用信息的用户,TotalView Debugger 为标识堆的内存问题提供直观易用的方法。这些可选的内置内存调试器与其他内存调试器相比更加没有侵入性,且您无需重新编译程序。内存调试器的图形堆浏览器使得堆行为和状态的解析更为轻松。高级过滤功能可以让您聚焦于感兴趣的内容,只看到希望看到的内容。其基线(baseline)功能能够对您程序
某点和其他点间的内存状态进行比较。您甚至可以将上次保存到磁盘的状态与现在的状态进行比较。
(注意:TotalView Individual 中不包括内置的内存调试器。)
测试修复而无需重新编译
抛开“改写、保存、重编译和运行”的烦恼。TotalView 的评估点可以节省您的时间。只需在源代码行附加一小段代码,TotalView 便可以执行该代码。
可伸缩、强健且可靠
专为世界上需求最苛刻的应用程序开发,TotalView 可以在多种不同的超级计算机上执行程序。实际上,全世界 98% 的超级计算机上已经安装了 TotalView。既然它连这样的程序都能够处理,因此大可不必担心 TotalView 会能力不足。
“TotalView 是必须可少的工具,尤其在调试 MPI 代码的时候。”Raytheon 员工
支持多种平台和操作系统
TotalView 的多平台支持消除了多个调试程序的麻烦和缺点,学习和使用都非常简单。以前在多种平台上调试则意味着要在各个平台上学习不同的调试器,并进行来回切换。TotalView 消除了这一问题,因为您每天开发所使用的 Linux、UNIX 和 Mac OS X 操作系统它都可以支持。
无可匹敌的并行和线程支持
TotalView 具有多种高级功能可以满足您并行模型的选择(MPI、OpenMP、UPC、GA、线程等)。例如,阻挡断点有助于同步进程和线程。而且 MPI 信息队列图(MPI Message Queue Graph)可以将程序的内部处理通信可视化,更容易查找出通信造成的问题。您甚至可以让它分析一个周期内的图形。
线程的使用成为现在关键业务代码中必不可少的部分。因此很多用户面临这样的疑惑:线程太复杂以至于难以使用其他调试器进行跟进。但是 TotalView 能够帮助您透过复杂的多线程程序重新获得对程序的全面
掌控。
我们的专属追踪器技术能够在您创建线程的同时轻松并自动获取这些线程。TotalView 然后让您执行一个、一组或全部线程。通过这种方式可以分析单个线程以及线程交互的方式。
高级 C++ 支持
复杂 C++ 代码中的继承体系、模板、域和嵌套继承可以迷惑普通的调试员,但无法欺骗 TotalView。TotalView 的高级 C++ 调试功能可以帮助您快速找到错误。您可以从评估点调用 C++ 函数然后在评估窗口中编写表达式;在模板的一个、多个或所有实例中设置断点;通过 STLView 功能在可阅读的表格中查看 STL 代码和数据,获取可以信任的合适的域信息,调试过载的程序,在需要时获取任何变量的信息等。就算处理最复杂的 C++ 代码,TotalView 也可以应付自如。
“我喜欢使用 TotalView,因为可以深入任何变量并查看变量的内容和结构,以及结构的元素。我可以一直挖掘直到找到需要的段落或保持在原地并查看该结构的整体情况。”
- David James, Unigraphic Solutions
调试共享的库和 DLL
TVD 通过程序加载共享库时自动提醒使得调试共享库变得前所未有简单。这允许您停止处理,且可以在库中包含的代码内方便地设置断点。并且在头文件中调试代码更为轻松。不管共享库和头文件代码有多复杂,这些就是为了让调试这些代码与调试代码的其他任何部分一样轻松。
强大的数据分析功能
TotalView 的 visualizer 可以快速暴露数据中的模式和异常。错误的数据或数据组管理不善偶尔会产生错误。在大量的数据中搜索非常耗时、容易失败而且经常搜索不到。但 TotalView 可以让您完全浏览并分析数据。例如,您可以过滤出 TotalView 查找到的范围之外不需要的数据。您可以设置观察点查看变量何时发生更改。在并行或
多线程程序中,您可以在单个窗口中查看所有进程或线程中的变量或对象的值。
|