Отладчик Eclipse, как фильтровать фреймы стека вызовов [duplicate]

В основном это - сводная таблица.

Хороший учебник о том, как этого достичь, можно найти здесь: http://www.artfulsoftware.com/

Обновить

g15]

После того, как ссылка выше в настоящее время недоступна, я чувствую себя обязанным предоставить дополнительную информацию для всех вас, ищущих ответы на mysql pivot. У него действительно было огромное количество информации, и я не буду вкладывать все оттуда сюда (еще больше, так как я просто не хочу копировать свои обширные знания), но я дам несколько советов о том, как справляться с точкой опоры таблицы sql в общем случае с примером из peku, который задал вопрос в первую очередь.

Возможно, ссылка скоро вернется, я буду следить за ней.

Метод электронной таблицы ...

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

Но ... это был не вопрос, и это могло бы даже привести к некоторым недостаткам, например, как получить данные в электронную таблицу, проблемное масштабирование и т. д.

Путь SQL ...

Учитывая, что его таблица выглядит примерно так:

CREATE TABLE `test_pivot` (
  `pid` bigint(20) NOT NULL AUTO_INCREMENT,
  `company_name` varchar(32) DEFAULT NULL,
  `action` varchar(16) DEFAULT NULL,
  `pagecount` bigint(20) DEFAULT NULL,
  PRIMARY KEY (`pid`)
) ENGINE=MyISAM;

Теперь загляните в его / ее желаемую таблицу:

company_name    EMAIL   PRINT 1 pages   PRINT 2 pages   PRINT 3 pages
-------------------------------------------------------------
CompanyA        0       0               1               3
CompanyB        1       1               2               0

Строки (EMAIL, PRINT x pages) напоминают условия. Основная группировка - company_name.

Чтобы настроить условия, это скорее кричит для использования CASE -стратега. Чтобы группировать что-то, хорошо, используйте ... GROUP BY.

Основной SQL, предоставляющий этот опорный элемент, может выглядеть примерно так:

SELECT  P.`company_name`,
    COUNT(
        CASE 
            WHEN P.`action`='EMAIL' 
            THEN 1 
            ELSE NULL 
        END
    ) AS 'EMAIL',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '1' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 1 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '2' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 2 pages',
    COUNT(
        CASE 
            WHEN P.`action`='PRINT' AND P.`pagecount` = '3' 
            THEN P.`pagecount` 
            ELSE NULL 
        END
    ) AS 'PRINT 3 pages'
FROM    test_pivot P
GROUP BY P.`company_name`;

Это должно обеспечить желаемый результат очень быстрый. Главным недостатком такого подхода является то, что чем больше строк вы хотите в сводной таблице, тем больше условий вам необходимо определить в вашем SQL-заявлении.

Это также может быть рассмотрено, поэтому люди склонны использовать подготовленные операторов, подпрограмм, счетчиков и т. д.

Некоторые дополнительные ссылки по этой теме:

34
задан kriegaex 3 April 2015 в 14:24
поделиться

2 ответа

Единственный способ, с помощью которого я могу фильтровать представление трассировки стека, - через Mylyn. Если у вас есть активная задача Mylyn, и вы нажмете кнопку «Фокус на активную задачу (экспериментальный)» в окне «Отладка», тогда трассировка стека будет отфильтрована только для отображения тех методов, которые находятся в контексте текущей задачи.

В этом случае вы не будете фильтровать определенные элементы из трассировки стека; скорее всего, все будет отсутствовать по умолчанию, и будут отображаться только некоторые элементы (в контексте задачи).

Вы можете посмотреть этот ответ для получения дополнительной информации о Mylyn.

8
ответ дан Community 21 August 2018 в 11:37
поделиться
  • 1
    Спасибо за информацию. Это было бы слишком ограничительным для моего дела. Тем не менее, если никто не предложит ничего лучшего, я отмечу это как принятый ответ. – espinchi 23 October 2010 в 15:23
  • 2
    Вы можете создать задачу и добавить весь свой код в контекст, и там у вас есть то, что вы хотите. Я даже не пробовал. Единственная проблема, о которой я могу думать, - это Mylyn, которая может попытаться удалить из контекста не затронутые темы. – TWiStErRob 30 September 2013 в 15:02

Подготовка. Вы можете использовать шаговые фильтры , как описано здесь здесь . Затем всякий раз, когда вы выполняете отладку через свой код, он не переходит в исключенные пакеты или классы, например. от JDK или некоторых фреймворков, таких как Hibernate или Spring. Но это всего лишь предварительное условие.

Решение: stacktrace все еще содержит фреймы из этих пакетов. Чтобы отфильтровать их, вам необходимо исправить плагин Eclipse JDT Debug UI . Кто-то еще сделал это уже для более старых выпусков Eclipse до Indigo. Поскольку мне было любопытно, могу ли я запустить его в текущем выпуске Luna 4.4.1, я воссоздал изменения другого парня и нажал Debug View + Stack Filter Plug-In до GitHub, включая ссылку для загрузки исправленного плагина. Так что, если вы тоже на 4.4.1, вам повезло, и вам не нужно патч и компилировать что-либо самостоятельно. Просто используйте мою версию. В противном случае, пожалуйста, клонируйте мое репо и посмотрите на изменения, а затем примените их к версии плагина по вашему выбору.

11
ответ дан kriegaex 21 August 2018 в 11:37
поделиться
  • 1
    Милая! Спасибо за помощь! – Brad Parks 10 December 2014 в 19:47
  • 2
    привет, я постарался поместить org.eclipse.jdt.debug.ui_3.6.300.201412061413.jar в папку dropin eclipse, но ничего не происходит ... любая идея? Спасибо вам – nzaero 25 March 2015 в 10:17
  • 3
    Без понятия. Используете ли вы точно Luna 4.4.1 или другую версию Eclipse? И какая версия debug.ui в настоящее время установлена ​​перед тем, как отказаться от замены? – kriegaex 25 March 2015 в 18:54
  • 4
    Я попытался создать новую версию для 4.5.1, но не смог это сделать. Хотя это скорее проблема с построением Eclipse. Можете ли вы объяснить немного больше, как вы создали плагин после смены источника? – littleimp 31 December 2015 в 13:29
  • 5
    Я действительно не помню, как я это сделал, но я стараюсь помогать быстрому & amp; грязный: я выбрал свою фиксацию для тега R4_5_1, создал файлы классов в Eclipse (что-то пошло не так в Maven), загрузило оригинальный JAR из Eclipse и вручную вложил в него один файл класса. Попробуйте эту ссылку , посмотрите, работает ли JAR для вас (непроверенный!) И, пожалуйста, предоставьте некоторую обратную связь. – kriegaex 1 January 2016 в 18:07
Другие вопросы по тегам:

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