Как я могу отладить свой код JavaScript? [закрытый]

Не используйте GetMethod, используйте GetMethods, затем отметьте IsGenericMethod.

using System;
using System.Linq;

class Program
{
    static void Main(string[] args)
    {
        var mi = Type.GetType("X").GetMethods().Where(method => method.Name == "Y"); 
        Console.WriteLine(mi.First().Name + " generic? " + mi.First().IsGenericMethod);
        Console.WriteLine(mi.Last().Name + " generic? " + mi.Last().IsGenericMethod);
    }
}

class X
{
    public void Y()
    {
        Console.WriteLine("I want this one");
    }
    public void Y<T>()
    {
        Console.WriteLine("Not this one");
    }
}

В качестве бонуса - метод расширения:

public static class TypeExtensions
{
    public static MethodInfo GetMethod(this Type type, string name, bool generic)
    {
        if (type == null)
        {
            throw new ArgumentNullException("type");
        }
        if (String.IsNullOrEmpty(name))
        {
            throw new ArgumentNullException("name");
        }
        return type.GetMethods()
            .FirstOrDefault(method => method.Name == name & method.IsGenericMethod == generic);
    }
}

Тогда просто:

static void Main(string[] args)
{
    MethodInfo generic = Type.GetType("X").GetMethod("Y", true);
    MethodInfo nonGeneric = Type.GetType("X").GetMethod("Y", false);
}
112
задан Shog9 27 October 2013 в 21:50
поделиться

14 ответов

Как и в большинстве ответов, это действительно зависит от того, чего вы пытаетесь достичь с вашей отладкой? Базовая разработка, устранение проблем с производительностью? Для базовой разработки всех предыдущих ответов более чем достаточно.

В частности, для тестирования производительности я рекомендую Firebug. Возможность определить, какие методы являются самыми дорогими с точки зрения времени, была неоценимой для ряда проектов, над которыми я работал. По мере того как клиентские библиотеки становятся все более и более надежными, а на клиентскую сторону в целом возлагается больше ответственности, этот тип отладки и профилирования станет только более полезным.

Firebug Console API: http://getfirebug.com/console.html

1
ответ дан 24 November 2019 в 02:46
поделиться

Firebug - один из самых популярных инструментов для этой цели.

78
ответ дан 24 November 2019 в 02:46
поделиться

Я использую Venkman , отладчик JavaScript для приложений XUL .

2
ответ дан 24 November 2019 в 02:46
поделиться

Я обнаружил, что новая версия Internet Explorer 8 (нажмите F12 ) очень хорошо подходит для отладки кода JavaScript.

Конечно, Firebug хорошо, если вы используете Firefox.

2
ответ дан 24 November 2019 в 02:46
поделиться

Помимо использования отладчика JavaScript Visual Studio, я написал свою собственную простую панель, которую я включаю на страницу. Это просто как Окно непосредственного доступа Visual Studio. Я могу изменять значения своих переменных, вызывать свои функции и просматривать значения переменных. Он просто оценивает код, написанный в текстовом поле.

2
ответ дан 24 November 2019 в 02:46
поделиться

Я использую несколько инструментов: Fiddler , Firebug и Visual Studio. Я слышал, что в Internet Explorer 8 есть хороший встроенный отладчик.

3
ответ дан 24 November 2019 в 02:46
поделиться

Вы также можете попробовать YUI Logger . Все, что вам нужно сделать, чтобы использовать его, - это включить пару тегов в свой HTML. Это полезное дополнение к Firebug, которое более или менее необходимо.

3
ответ дан 24 November 2019 в 02:46
поделиться

Visual Studio 2008 имеет несколько очень хороших инструментов отладки JavaScript. Вы можете удалить точку останова в коде JavaScript на стороне клиента и пройти через нее, используя те же инструменты, что и код на стороне сервера. Нет необходимости подключаться к процессу или делать какие-либо хитрые действия для его включения.

3
ответ дан 24 November 2019 в 02:46
поделиться

Мой первый шаг - всегда проверять HTML и проверять синтаксис с помощью JSLint . Если у вас чистая разметка и правильный код JavaScript, то пора использовать Firebug или другой отладчик.

4
ответ дан 24 November 2019 в 02:46
поделиться

Я использовал Firebug , пока не вышел Internet Explorer 8. Я не большой поклонник Internet Explorer, но после некоторого времени, проведенного со встроенными инструментами разработчика, которые включают в себя действительно хороший отладчик, кажется бессмысленным использовать что-либо еще. Я должен снять шляпу перед Microsoft, они проделали фантастическую работу с этим инструментом.

3
ответ дан 24 November 2019 в 02:46
поделиться

Я использую меню / консоль разработчика WebKit (Safari 4). Он почти идентичен Firebug.

console.log () - новый черный цвет - намного лучше, чем alert () .

6
ответ дан 24 November 2019 в 02:46
поделиться

Хотя alert (msg); работает в тех сценариях «Я просто хочу узнать, что происходит» ... каждый разработчик сталкивался тот случай, когда вы попадаете в (очень большой или бесконечный) цикл, из которого вы не можете выйти.

Я бы рекомендовал, чтобы во время разработки, если вам нужна очень удобная опция отладки, используйте отладку вариант, позволяющий вырваться наружу. (PS Opera, Safari? И Chrome? Все это доступно в их собственных диалоговых окнах)

//global flag
_debug = true;
function debug(msg){
  if(_debug){
    if(!confirm(msg + '\n\nPress Cancel to stop debugging.')){
      _debug = false;
    }
  }
}

С помощью вышесказанного вы можете погрузиться в большой цикл отладки всплывающих окон, где нажмите Enter / Хорошо позволяет вам пролистывать каждое сообщение, но нажатие Escape / Отмена позволяет быстро прервать работу.

9
ответ дан 24 November 2019 в 02:46
поделиться

Начните с Firebug и IE Debugger.

Однако будьте осторожны с отладчиками в JavaScript. Время от времени они будут влиять на среду настолько, чтобы вызвать некоторые ошибки, которые вы пытаетесь отладить.

Примеры:

Для Internet Explorer это обычно постепенное замедление и своего рода сделка типа утечки памяти. . Примерно через полчаса мне нужно перезапустить. Похоже, это довольно обычная работа.

Для Firebug, вероятно, прошло больше года, так что это могла быть более старая версия. В результате я не помню деталей, но в основном код работал некорректно, и после попытки отладить его на некоторое время я отключил Firebug, и код работал нормально.

12
ответ дан 24 November 2019 в 02:46
поделиться
  • Internet Explorer 8 (Инструменты разработчика - F12 ). Все остальное является второстепенным в области Internet Explorer
  • Firefox и Firebug . Нажмите F12 для отображения.
  • Safari (Показать строку меню, Настройки -> Дополнительно -> Показать строку меню «Разработка» ))
  • Консоль Google Chrome JavaScript ( F12 или ( Ctrl + Shift + J )). В основном тот же браузер, что и Safari, но Safari лучше IMHO.
  • Opera ( Инструменты -> Дополнительно -> Инструменты разработчика )
54
ответ дан 24 November 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: