Отладка гаджетов боковой панели Windows без Visual Studio
Я пытаюсь создать гаджет боковой панели без использования Visual Studio. Я искал способы их отладки, но все говорят, что JIT-отладчик Visual Studio - единственный способ сделать это.
Кто-нибудь смог отладить гаджеты на боковой панели без Visual Studio?
2 ответа
В течение многих лет я не использовал Visual Studio для работы с гаджетами. Существует несколько способов отладки гаджетов без него, но не так широко. Например, вы не можете использовать debugger;
команда без надлежащего отладчика, присоединенного к процессу. Что вы можете сделать, так это использовать программу типа DebugView для перехвата сообщений, выводимых System.Debug.outputString()
метод:
function test ()
{
System.Debug.outputString("Hello, I'm a debug message");
}
Это позволяет вам выводить дампы переменных и другие полезные фрагменты информации на определенных этапах вашего кода, так что вы можете отслеживать их по своему усмотрению.
В качестве альтернативы вы можете свернуть свои собственные сообщения отладки / остановки скриптов, используя window.prompt()
, alert()
был отключен для гаджетов и confirm()
отменяется, чтобы всегда возвращать истину, но они, должно быть, упустили из виду prompt()
,
function test ()
{
// execute some code
window.prompt(someVarToOutput, JSON.stringify(someObjectToExamine));
// execute some more code
}
JSON.stringify()
Метод действительно помогает, если вы хотите проверить состояние объекта во время выполнения кода.
Вместо window.prompt
Вы также можете использовать VBScript MsgBox()
функция:
window.execScript( //- Add MsgBox functionality for displaying error messages
'Function vbsMsgBox (prompt, buttons, title)\r\n'
+ ' vbsMsgBox = MsgBox(prompt, buttons, title)\r\n'
+ 'End Function', "vbscript"
);
vbsMsgBox("Some output message", 16, "Your Gadget Name");
Наконец, вы можете отследить все ошибки в вашем скрипте, используя window.onerror
обработчик события.
function window.onerror (msg, file, line)
{
// Using MsgBox
var ErrorMsg = 'An error has occurred'+(line&&file?' in '+file+' on line '+line:'')+'. The message returned was:\r\n\r\n'+ msg + '\r\n\r\nIf the error persists, please report it.';
vbsMsgBox(ErrorMsg, 16, "Your Gadget Name");
// Using System.Debug.outputString
System.Debug.outputString(line+": "+msg);
// Using window.prompt
window.prompt(file+": "+line, msg);
// Cancel the default action
return true;
}
window.onerror
событие даже позволяет вам вывести номер строки и файл (точный только в IE8), в котором произошла ошибка.
Удачи в отладке и помните, что не оставляйте ни в одном из окон window.prompts или MsgBox, когда публикуете свой гаджет!
В Windows 7 был добавлен новый раздел реестра, который отображает ошибки скрипта во время выполнения на данном ПК:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Sidebar]
"ShowScriptErrors"=dword:00000001
С этим значением вы увидите диалоговые окна при возникновении ошибок скрипта.