请假设我有一些程序在两个主流中都有输出:err && out.作为一个例子,我们可以使用下一个bat文件:
@echo off
echo 1
echo 2 >&2
echo 3
echo 4 >&2
echo 5
echo 6 >&2
echo 7
echo 8 >&2
echo 9
echo 10 >&2
Run Code Online (Sandbox Code Playgroud)
所以在控制台的屏幕上我会看到这个输出:
1
2
3
4
5
6
7
8
9
10
Run Code Online (Sandbox Code Playgroud)
我希望看到这个输出!正如我预期的那样.但是我也希望在某个特定的'ERR.out'文件中同时看到整个错误的流.所以它的内容考虑到我的初始bat文件应该是:
2
4
6
8
10
Run Code Online (Sandbox Code Playgroud)
所以我的问题是 - 如何在BAT文件的场景中为Windows XP SP3做这个技巧?
我想使用下一个伪代码 - 但它当然不会起作用.但我希望主要逻辑是相同的:command.exe | print_it_as_is_on_screen | redirect_2_stream_to_ERR.out_file | send_whole_output_to_another_command.exe
不久前,我们了解到即使发布版本也可能无法正常运行 - 可能会崩溃 - 可能会挂起等。因此,我们决定实施转储创建过程。所有步骤都相当快地在互联网上找到了。但有一点——主要的事情——对我们来说仍然无法理解。
根据 MSDN,MINIDUMP_TYPE 支持 23 个标志。但对于下一个问题,没有深入的技术解释:它们在各自的应用领域都是独立的吗?或者它们可以成对、三组使用吗?它们可以同时使用吗?我可以在某些组中使用它们吗(例如,一些 3 个标志 - 生成与其他 5 个标志几乎相同的转储。)我的意思是,当我将用于 ex. 1+3 标志 - 绝对等于使用标志 4+6+9。或者标志 1 或标志 3 或... - 是所有其他标志的叠加?或者是什么?我想了解所有可用标志之间所有可能的交叉。因为也许使用标志 3+12+14 没有实际意义,例如,我当前的目标是使用内存中绝对所有可用数据创建转储。我应该能够查看所有线程、所有 local-static-global-in_heap 变量。我的意思是,当我打开一些由 bla+bla+bla 标志组合生成的转储时,它应该与我可以将调试器直接附加到进程时完全相同。我应该获取所有可能的数据!
PS MiniDumpWithFullMemory - 没有给我这样的能力(((为什么?@FULL@内存这个词 - 并不意味着完整?它只是什么的一部分?