moncontrol 子例程

用途

monitor 子例程初始化后启动并停止执行概要分析。

标准 C 库 (libc.a)

语法

#include <mon.h>
int moncontrol ( Mode)
int Mode;

描述

moncontrol 子例程在 monitor 子例程初始化概要分析后启动并停止概要分析。 它可以与 -p-pg剖析一起使用。 当 moncontrol 停止概要分析时,不会生成任何输出数据文件。 当 monitor 子例程已启动概要分析并调用 exit 子例程时,或者当使用值 0 调用 monitor 子例程时,将停止概要分析并生成输出文件, 而不考虑由 moncontrol 子例程设置的概要分析状态。

moncontrol 子例程按以下顺序检查全局数据和参数数据:

  1. 当'_mondata.prof_type全局变量既不是'-1(-p'剖析定义)也不是 +1 ('-页码剖析定义)时,将不执行任何操作,返回 0,并认为函数已完成。

    该全局变量在mcrt0.o文件中设置为-1,在gcrt0.o文件中设置为+1,使用crt0.o文件时默认为 0。

  2. Mode 参数为 0 时,将停止概要分析。 对于任何其他值,将启动概要分析。

    在对 profil 子例程的调用中使用以下全局变量:

    描述
    _mondata.ProfBuf 缓冲区地址
    _mondata.ProfBufSiz 缓冲区大小/多范围标志
    _mondata.ProfLoPC Hist 缓冲区的 PC 偏移-I/O 限制
    _mondata.ProfScale PC 缩放/计算缩放标志。

这些变量由 monitor 子例程在每次调用它以启动概要分析时进行初始化。

参数

描述
方式 指定是启动 (恢复) 还是停止概要分析。

返回值

moncontrol 子例程返回概要分析的先前状态。 当先前状态为 STOPPED 时,将返回 0。 当先前状态为 STARTED 时,将返回 1。

错误代码

moncontrol子程序检测到调用profil子程序出错时,将返回-1。