代码之家  ›  专栏  ›  技术社区  ›  IInspectable

如何确定输出\调试\字符串\信息中字符串的长度?

  •  0
  • IInspectable  · 技术社区  · 4 年前

    文件 OUTPUT_DEBUG_STRING_INFO 结构没有解释如何确定它所指向的字符串值的长度(或大小)。具体来说 nDebugStringLength

    以字节为单位的字符串长度的低16位。由于nDebugStringLength是WORD类型,因此它并不总是包含以字节为单位的字符串的完整长度。

    例如,如果原始输出字符串长于65536字节,则此字段将包含一个小于以字节为单位的实际字符串长度的值。

    size = nDebugStringLength + (n * 65536)
    

    n 在里面 [0..65536)

    问题:

    0 回复  |  直到 4 年前
        1
  •  2
  •   RbMm    4 年前

    DBGUI_WAIT_STATE_CHANGE

    如果使用 WaitForDebugEvent[Ex] DEBUG_EVENT 通过使用 DbgUiConvertStateChangeStructure[Ex]

    这个 DbgExceptionStateChang异常 (英寸 新州 )事件 DBG_PRINTEXCEPTION_WIDE_C DBG_PRINTEXCEPTION_C 例外代码 )转换为 OUTPUT_DEBUG_STRING_INFO . 这个 nDebugStringLength公司 是从 或来自 DBG\U打印异常\U C api版本 nDebugStringLength公司 (或 [3] )已使用。 请注意 例外信息[0] (和 [3] DBG\U打印异常\U宽\U C )包含字符串长度 人物 , 正在终止0。 相反 nDebugStringLength公司 WaitForDebugEventEx 例外情况- nDebugStringLength = (WORD)(ExceptionInformation[0] * sizeof(WCHAR))