将调试会话的值从 watch window 保存到文件
Saving values of debug session from watch window to a file
我必须跟踪一些我想跟踪的事件来监视多线程应用程序的运行。为此,我定义了一个结构数组。每个元素是一个跟踪记录。
enum Event { start, stop, pause };
struct A
{
Event e;
int x, y, z;
};
main()
{
A a[100];
}
还有一个将事件写入数组的函数。数组a
可以在Visual Studio的watchwindow中显示,虽然不是所有struct成员都显示:
- a 0x008ff4bc {{e=0xcccccccc x=0xcccccccc y=0xcccccccc ...}, {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...}, ...} A[0x00000064]
+ [0x00000000] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
+ [0x00000001] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
+ [0x00000002] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
由于数组比较大,加上手表的限制,我想将整个数组内容导出到一个文件中。这可以通过向正在调试的代码添加文件导出功能来完成。但这并不方便,因为调试器只是在断点处,并不总是可以告诉应用程序 运行 导出函数。
如何导出包含所有个成员值的数组?是否可以选择使用 VS 命令 window 或可能立即 window 来创建包含数据的文本文件?
一定要一键导出吗?您可以 select 全部复制并粘贴到您的输出文件中。您可以从 Watch
window 执行此操作,但是 Immediate
或 Command
windows.
的输出更清晰一些
您可以通过在 C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\Packages\Debugger\Visualizers
中创建自定义可视化工具来美化格式(使用 您的 版本的 VS)。
它可能是这样的,例如:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="A">
<DisplayString>({e}:{x},{y},{z})</DisplayString>
</Type>
</AutoVisualizer>
我必须跟踪一些我想跟踪的事件来监视多线程应用程序的运行。为此,我定义了一个结构数组。每个元素是一个跟踪记录。
enum Event { start, stop, pause };
struct A
{
Event e;
int x, y, z;
};
main()
{
A a[100];
}
还有一个将事件写入数组的函数。数组a
可以在Visual Studio的watchwindow中显示,虽然不是所有struct成员都显示:
- a 0x008ff4bc {{e=0xcccccccc x=0xcccccccc y=0xcccccccc ...}, {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...}, ...} A[0x00000064]
+ [0x00000000] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
+ [0x00000001] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
+ [0x00000002] {e=0xcccccccc x=0xcccccccc y=0xcccccccc ...} A
由于数组比较大,加上手表的限制,我想将整个数组内容导出到一个文件中。这可以通过向正在调试的代码添加文件导出功能来完成。但这并不方便,因为调试器只是在断点处,并不总是可以告诉应用程序 运行 导出函数。
如何导出包含所有个成员值的数组?是否可以选择使用 VS 命令 window 或可能立即 window 来创建包含数据的文本文件?
一定要一键导出吗?您可以 select 全部复制并粘贴到您的输出文件中。您可以从 Watch
window 执行此操作,但是 Immediate
或 Command
windows.
您可以通过在 C:\Program Files (x86)\Microsoft Visual Studio19\Community\Common7\Packages\Debugger\Visualizers
中创建自定义可视化工具来美化格式(使用 您的 版本的 VS)。
它可能是这样的,例如:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="A">
<DisplayString>({e}:{x},{y},{z})</DisplayString>
</Type>
</AutoVisualizer>