我正在OPNET Modeler中编写C ++代码。 我尝试在调试器模式下模拟我的场景&我需要跟踪我写的功能。我需要显示我在代码中添加的打印语句。
我在调试器模式下使用:***ltr function_name()***
然后***c***
但结果如下:
Type 'help' for Command Summary
ODB> ltr enqueue_packet()
Added trace #0: trace on label (enqueue_packet())
ODB> c
|-----------------------------------------------------------------------------|
| Progress: Time (1 min. 52 sec.); Events (500,002) |
| Speed: Average (82,575 events/sec.); Current (82,575 events/sec.) |
| Time : Elapsed (6.1 sec.) |
| DES Log: 28 entries |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
| Progress: Time (1 min. 55 sec.); Events (1,000,002) |
| Speed: Average (69,027 events/sec.); Current (59,298 events/sec.) |
| Time : Elapsed (14 sec.) |
| DES Log: 28 entries |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
| Progress: Time (1 min. 59 sec.); Events (1,500,002) |
| Speed: Average (51,464 events/sec.); Current (34,108 events/sec.) |
| Time : Elapsed (29 sec.) |
| DES Log: 28 entries |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
| Simulation Completed - Collating Results. |
| Events: Total (1,591,301); Average Speed (48,803 events/sec.) |
| Time : Elapsed (33 sec.); Simulated (2 min. 0 sec.) |
| DES Log: 29 entries |
|-----------------------------------------------------------------------------|
|-----------------------------------------------------------------------------|
| Reading network model. |
|-----------------------------------------------------------------------------|
我需要在代码中显示print语句。 它必须出现在哪里? 在运行模拟之前是否有任何步骤以确保OPNET调试器使用Visual Studio&仔细阅读我的代码??
答案 0 :(得分:2)
OPNET Modeler提供以下命令来打印跟踪输出:
op_prg_odb_print_major()以标准输出设备的形式打印一系列字符串,格式为从主要缩进级别开始的ODB跟踪语句。
op_prg_odb_print_minor()以小缩进级别的ODB跟踪语句的格式将一系列字符串打印到标准输出设备。
op_prg_text_output()将一系列用户定义的字符串打印到标准输出设备。
例如:
if (op_prg_odb_ltrace_active ("tcp_window")) {
/* a trace is enabled, output Window-Related Variables */
char str0[128], str1[128], str2[128];
sprintf (str0, "rcv requests pending : (%d)", num_rcvs_allowed);
sprintf (str1, "local receive window : (%d)", receive_window);
sprintf (str2, "remote receive window : (%d)", remote_window);
op_prg_odb_print_major ("Window-Related Variables", str0, str1, str2, OPC_NIL);
sprintf (str0, "send unacked : (%d)", send_unacked);
sprintf (str1, "send_next : (%d)", send_next);
sprintf (str2, "receive next : (%d)", receive_next);
op_prg_odb_print_minor (str0, str1, str2, OPC_NIL);
}
标准输出设备上显示的输出示例:
| Window-Related Variables
| rcv requests pending : (3)
| local receive window : (6400)
| remote receive window : (10788)
| send unacked : (4525)
| send_next : (5000)
| receive_next : (1200)
[从OPNET Modeler文档中获取的代码。]
注意:我猜你正在修改标准模型并使用stdmod存储库。如果是这种情况,则代码不会被编译,您将不会在调试器中看到任何打印语句。请参阅首选项“网络模拟存储库”以查看您是否使用存储库而不是编译自己的代码。
答案 1 :(得分:0)
我对你尝试做什么并不太了解,但我认为你可以使用
将语句直接输出到C ++代码的调试器 OutputDebugStringA("Your string here");
或只是
OutputDebugString("Your string here");
希望这有帮助!