+ len = Mmsg(msg, "APIs=%sOPT,%sATP,%sLPV,%sCFA,%sCFW,\n",
+ p_OpenProcessToken?"":"!",
+ p_AdjustTokenPrivileges?"":"!",
+ p_LookupPrivilegeValue?"":"!",
+ p_CreateFileA?"":"!",
+ p_CreateFileW?"":"!");
+ sendit(msg.c_str(), len, sp);
+ len = Mmsg(msg, " %sWUL,%sWMKD,%sGFAA,%sGFAW,%sGFAEA,%sGFAEW,%sSFAA,%sSFAW,%sBR,%sBW,%sSPSP,\n",
+ p_wunlink?"":"!",
+ p_wmkdir?"":"!",
+ p_GetFileAttributesA?"":"!",
+ p_GetFileAttributesW?"":"!",
+ p_GetFileAttributesExA?"":"!",
+ p_GetFileAttributesExW?"":"!",
+ p_SetFileAttributesA?"":"!",
+ p_SetFileAttributesW?"":"!",
+ p_BackupRead?"":"!",
+ p_BackupWrite?"":"!",
+ p_SetProcessShutdownParameters?"":"!");
+ sendit(msg.c_str(), len, sp);
+ len = Mmsg(msg, " %sWC2MB,%sMB2WC,%sFFFA,%sFFFW,%sFNFA,%sFNFW,%sSCDA,%sSCDW,\n",
+ p_WideCharToMultiByte?"":"!",
+ p_MultiByteToWideChar?"":"!",
+ p_FindFirstFileA?"":"!",
+ p_FindFirstFileW?"":"!",
+ p_FindNextFileA?"":"!",
+ p_FindNextFileW?"":"!",
+ p_SetCurrentDirectoryA?"":"!",
+ p_SetCurrentDirectoryW?"":"!");
+ sendit(msg.c_str(), len, sp);
+ len = Mmsg(msg, " %sGCDA,%sGCDW,%sGVPNW,%sGVNFVMPW,%sLZO,%sEFS\n",
+ p_GetCurrentDirectoryA?"":"!",
+ p_GetCurrentDirectoryW?"":"!",
+ p_GetVolumePathNameW?"":"!",
+ p_GetVolumeNameForVolumeMountPointW?"":"!",
+ have_lzo?"":"!",
+ "!");
+ sendit(msg.c_str(), len, sp);
+ }
+#endif
+ len = Mmsg(msg, _(" Heap: heap=%s smbytes=%s max_bytes=%s bufs=%s max_bufs=%s\n"),
+ edit_uint64_with_commas(memused, b1),
+ edit_uint64_with_commas(sm_bytes, b2),
+ edit_uint64_with_commas(sm_max_bytes, b3),
+ edit_uint64_with_commas(sm_buffers, b4),
+ edit_uint64_with_commas(sm_max_buffers, b5));
+ sendit(msg.c_str(), len, sp);
+ len = Mmsg(msg, _(" Sizes: boffset_t=%d size_t=%d debug=%s trace=%d "
+ "mode=%d,%d bwlimit=%skB/s\n"),
+ sizeof(boffset_t), sizeof(size_t),
+ edit_uint64(debug_level, b2), get_trace(), (int)DEVELOPER_MODE, 0,
+ edit_uint64_with_commas(me->max_bandwidth_per_job/1024, b1));
+ sendit(msg.c_str(), len, sp);
+ if (b_plugin_list && b_plugin_list->size() > 0) {
+ Plugin *plugin;
+ int len;
+ pm_strcpy(msg, " Plugin: ");
+ foreach_alist(plugin, b_plugin_list) {
+ len = pm_strcat(msg, plugin->file);
+ /* Print plugin version when debug activated */
+ if (debug_level > 0 && plugin->pinfo) {
+ pInfo *info = (pInfo *)plugin->pinfo;
+ pm_strcat(msg, "(");
+ pm_strcat(msg, NPRT(info->plugin_version));
+ len = pm_strcat(msg, ")");
+ }
+ if (len > 80) {
+ pm_strcat(msg, "\n ");
+ } else {
+ pm_strcat(msg, " ");
+ }
+ }
+ len = pm_strcat(msg, "\n");
+ sendit(msg.c_str(), len, sp);