Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826

Пустые дебаг методы vs полное выпиливание с проекта

26.01.2017, 20:57. Показов 2968. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <string>
using namespace std;
 
//////////////////////////////////////////////////////////////////////////
class Log1
{
public:
    static void log(const std::string&)
    {
#if !defined(PRODUCTION)
        // ...
#endif
    }
};
 
//////////////////////////////////////////////////////////////////////////
 
//////////////////////////////////////////////////////////////////////////
class Log2
{
#if !defined(PRODUCTION)
public:
    static void log(const std::string&)
    {
    
    }
 
#endif
};
 
#if !defined(PRODUCTION)
#define LOG(str) Log2::log(str)
#else
#define LOG(str)
#endif
 
//////////////////////////////////////////////////////////////////////////
 
int main()
{
    Log1::log("123213");
    LOG("123123123");
}
Подскажите, какой способ лучше применять для вещей которые не должны попасть в продакшен, и разбросаны по всему коду?

Моё мнение:
если макрос - то особо не поиграться с шаблонами и отсутствие статического проверки типа
если методы пустышки - то будет ли создаваться под них стек и вызов, или компилятор с оптимизирует всё это дело?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2017, 20:57
Ответы с готовыми решениями:

Полное имя файла из проекта
Как его получить?

Пустые методы в перечислении java.util.concurrent.TimeUnit
Решил, ради интереса, посмотреть, как реализованы методы convert(), toNanos(), toSeconds() и прочие в перечислении TimeUnit, но, к своему...

Выпиливание экземпляра класса самим собой
Наслышан и начитан о плохом тоне и ub команды delete this, однако, будет ли ошибкой вызывать вместо delete this деструктор? class...

48
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.01.2017, 16:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от sys_beginner Посмотреть сообщение
По сути лог это сохранение определенного действия для дальнейшего его анализа (например, не удалось занять порт на определенной машине просто потому что его занял кто-то другой).
На машине девелопмента такая информация не очень полезна. Я об этом, логи решают приблизительно такие задачи.
логи нужны именно что девелоперам и поддержке.
пользователям по барабану.
зачастую они даже не знают об их существовании.

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

Цитата Сообщение от sys_beginner Посмотреть сообщение
Что касается отладки, то для этого придумали отладчик
расскажите мне, как вы будите отлаживать стрипованный оптимизированный бинарь,
который крутится на машинках, которые находится на другом конце света?

раз в 3 часа, или в 3 дня, или в 3 недели происходит зависание сервиса
никто не знает какого именно.
никто не знает почему.
и никто не может угадать на какой именно машинке это случится в след. раз.
в нашей тестовой среде баг не воспроизводится.

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

--------------------------------------------------------------

если баг воспроизводится только в боевых условиях,
то и ловить его нужно тоже на бою

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

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

ну а после ремонта можно будет опять отключить логгер
3
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 16:34
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Расскажите про ваш опыт?
В моей практике смысл логирования заключался либо в слежке за действиями в многопользовательских программах, либо как инструмент для пользователя программы(речь именно о программистах а не домохозяйках) что бы понять что пошло не так. Тот же пример с занятым портом...

Цитата Сообщение от hoggy Посмотреть сообщение
сами же логи должны отражать состояние системы настолько детально,
насколько это возможно,
что бы по ним можно было понять,
что вообще происходит.
А я разве с этим спорил? Сам об этом говорил...

Цитата Сообщение от hoggy Посмотреть сообщение
который крутится на машинках, которые находится на другом конце света?
не понимаю как можно отлаживать то что находится на другом сервере, что бы что либо отладить нужно как минимум иметь доступ на тот диск где расположена проблемная программа

Цитата Сообщение от hoggy Посмотреть сообщение
раз в 3 часа, или в 3 дня, или в 3 недели происходит зависание сервиса
никто не знает какого именно.
никто не знает почему.
и никто не может угадать на какой именно машинке это случится в след. раз.
в нашей тестовой среде баг не воспроизводится.
расскажите мне, как вы будете это отлаживать?
Так я поэтому и говорю что логи нужны для пользователей программы. Когда что-то идет не так, смотрим в лог каждой из машины и выясняем причины проблем. Но то что пишется в лог, это как правило заранее известная возможная проблема, а не баг ибо тот кто писал код не зря в этом участке задействовал логирование. Например, на диске осталось 10МБ и ввиду этого программа не сохраняет 20МБ-овый файл и пишет в лог "Не удалось сохранить такой то файл, места нет". Здесь уже ничего дебажить не нужно, просто откармливаем диск и все
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.01.2017, 16:38
Цитата Сообщение от hoggy Посмотреть сообщение
раз в 3 часа, или в 3 дня, или в 3 недели происходит зависание сервиса
никто не знает какого именно.
никто не знает почему.
и никто не может угадать на какой именно машинке это случится в след. раз.
Звучит как начало хорошего триллера
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.01.2017, 16:51
есть ещё вот такой интересный дизайн:

http://rextester.com/RBHL49675
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <string>
#include <vector>
#include <list>
 
//-std=c++14 -fopenmp -O2 -g3 -pedantic -Wall -Weffc++ -Wextra 
//-Woverloaded-virtual -Wctor-dtor-privacy -Wnon-virtual-dtor 
//-Wold-style-cast -Wconversion -Wsign-conversion -Winit-self 
//-Wunreachable-code
 
struct logger
{
    template<class F>
    logger& operator <<(F&& report)
    {
        if(activated)
            std::cout << report();
        
        return *this;
    }
    void activate(bool need = true) { activated = need; }
private:
    bool activated = false;
    
} log;
 
int main() 
{
    log << []{ return "ololo!\n"; };
    
    log.activate();
    
    log << []{ return "hello! "; } << []{ return "world!\n"; };
}
суть идеи: вместо того,
что бы запихивать в лог готовые данные,
мы запихиваем в него функции-добывальщики данных.
однако, если логгер в выключенном состоянии,
то он их дергать не будет.
по этому издержки на выключенный лог минимальны.

киллер-фича:
такой подход позволяет запускать/отключать логгирование удаленно.
и получать логи самой разной детализации хоть прямо к себе на почту.

Добавлено через 3 минуты
Цитата Сообщение от sys_beginner Посмотреть сообщение
не понимаю как можно отлаживать то что находится на другом сервере
а как жеж отладчег??? )))

Цитата Сообщение от sys_beginner Посмотреть сообщение
ибо тот кто писал код не зря в этом участке задействовал логирование.
да просто протоколирование хода действия.
что б потом в случае проблем,
можно было по шагам глянуть,
что происходило и куда привело.

удаленный процесс крашнулся.
а у вас на руках трасса вызова функций,
и значения всех критических данных.
клева жеж?

Добавлено через 1 минуту
Цитата Сообщение от sys_beginner Посмотреть сообщение
Так я поэтому и говорю что логи нужны для пользователей программы.
вы блондинке что ли предлагаете логи читать?
потому что пользователь - она, а не программист.
программист - разработчик.

Добавлено через 4 минуты

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
Звучит как начало хорошего триллера
Кликните здесь для просмотра всего текста
- это будет трудная ночь. не все доживут до рассвета...
- закрой холодильник! котлеты на завтра

3
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 16:59
Цитата Сообщение от hoggy Посмотреть сообщение
а как жеж отладчег??? )))
Всё так же Имея доступ на диск где лежит программа можно воспользоваться отладчиком. Тут речь именно о багах а не средо-зависимых крешах которые к логике самой программы не имеют прямого отношения(лишь косвенно)

Цитата Сообщение от hoggy Посмотреть сообщение
удаленный процесс крашнулся.
а у вас на руках трасса вызова функций,
и значения всех критических данных.
клева жеж?
Не клево. Для этого программное обеспечение должно уметь "отлавливать" ошибки а пользователю API этого самого удаленного сервера возвращать осмысленный ответ. И следствие такой ошибки как правило не баги, а средо-зависимые проблемы. Возьмем тот же пример с диском, если места нет - отлавливаем это в программе и там где отправляется ответ клиенту пишем причину почему его запрос не удался. Программа не виновата что места на диске мало. Опять же, багом такое вещи назвать нельзя

Цитата Сообщение от hoggy Посмотреть сообщение
вы блондинке что ли предлагаете логи читать?
потому что пользователь - она, а не программист.
программист - разработчик.
Нет конечно. В программах для блондинок показываются красивые окошки и это не обязательно логи про которые мы сейчас говорим
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.01.2017, 20:11
Цитата Сообщение от sys_beginner Посмотреть сообщение
Имея доступ на диск где лежит программа можно воспользоваться отладчиком
я ещё раз зада. вам вопрос:
как именно вы собрались отлаживать стрипованный релизный бинарь?
Цитата Сообщение от sys_beginner Посмотреть сообщение
Для этого программное обеспечение должно уметь "отлавливать" ошибки
вот именно для этого и существуют логи.
а логгер - то самое ПО, с помощью которого отлавливают ошибки.

Цитата Сообщение от sys_beginner Посмотреть сообщение
пользователю API этого самого удаленного сервера
вы какой то наивный.
такое впечатление,
как будто бы вы отлаживать умеете только свой собственный проект на локальной машинке.
где нибудь в дебаге в пошаговой отладке.

пользователь вам вообще ничем не поможет.
максимум на что он способ: "что-то не работает".

вы сами по ssh, или ещё как то будете заходить на удаленную машинку,
выкачивать оттуда логи, смотреть в каком состоянии система,
и тп.

Цитата Сообщение от sys_beginner Посмотреть сообщение
В программах для блондинок показываются красивые окошки
тоже случаются краши/зависоны.
и логи никто не отменял.

вообще по уму, годная система логгирования в случае краша должна уметь
аварийные действия:
прислать логи о происшествии,
перезапустить сервис,
и тп.
0
27.01.2017, 20:40

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
система логгирования в случае краша должна уметь
Цитата Сообщение от hoggy Посмотреть сообщение
перезапустить сервис
А вот это, как мне кажется, уже не системы логгирования дело. Лучше какой-нибудь обработчик ошибок сделать.
Типа логгер говорит в лог, и там же говорится "обработчик ошибок, ты чего уснул, работай давай! Перезапустить надо.".

0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.01.2017, 21:04
Цитата Сообщение от GbaLog- Посмотреть сообщение
А вот это, как мне кажется, уже не системы логгирования дело.
годный логгер должен пережить краш.
и суметь сохранить накопленные данные.
и оповестить о происшествии.

в случае краша, собственно,
логгер - единственный компонент системы,
который ещё на плаву.
и который может что то сделать.
на него вешается некий произвольный обработчик.
в котором можно прописать какие то конкретные действия.
например: послать логи разрабам,
и перезапустить сервис.
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
27.01.2017, 21:13
Цитата Сообщение от hoggy Посмотреть сообщение
на него вешается некий произвольный обработчик.
Я об этом и говорю:
Цитата Сообщение от GbaLog- Посмотреть сообщение
Типа логгер говорит в лог, и там же говорится "обработчик ошибок, ты чего уснул, работай давай! Перезапустить надо.".
А то у вас было как-то непонятно, как будто логгер сам сервис перезапускает.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
27.01.2017, 21:20
Цитата Сообщение от GbaLog- Посмотреть сообщение
А то у вас было как-то непонятно, как будто логгер сам сервис перезапускает.
нет, логгер просто запускает произвольный обработчик.
1
27.01.2017, 22:25

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
единственный компонент системы,
который ещё на плаву.
и который может что то сделать.
Точно триллер какой-то :D

0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
27.01.2017, 23:33
Цитата Сообщение от hoggy Посмотреть сообщение
как именно вы собрались отлаживать стрипованный релизный бинарь?
Почему бинарь отлаживать? Я имел ввиду, если есть подозрение на баг, берем сорцы и дебажим в дебаг режиме...

Цитата Сообщение от hoggy Посмотреть сообщение
вот именно для этого и существуют логи.
Речь шла именно о исправлении багов с помощью логгера(я выступал именно против этого).

Цитата Сообщение от hoggy Посмотреть сообщение
а логгер - то самое ПО, с помощью которого отлавливают ошибки.
Да. Только не каждая ошибка это баг, так ведь? А баги это уже заботы дебагера, я об этом.

Цитата Сообщение от hoggy Посмотреть сообщение
вы сами по ssh, или ещё как то будете заходить на удаленную машинку
Ну начнем с того что доступ к удаленному серверу может быть не всегда. Посмотрите например API того же Вконтакте и ему подобных. Обычно такие сервисы предоставляют определенный интерфейс для клиента(пользователя их API), и доступа к этому серверу нету. В случае ошибки - в соответствующей секции ответа сервера как правило находится информация об ошибках, что бы клиент мог корректно обработать серверную ошибку.

Цитата Сообщение от hoggy Посмотреть сообщение
выкачивать оттуда логи, смотреть в каком состоянии система, и тп.
Даже если есть доступ к удаленному серверу, клиент этого сервера в любом случае должен иметь возможность корректно обработать ошибку удаленного сервера. Для этого "реальные пацаны", разработчики серверов обычно предоставляют соответствующий интерфейс общения для тех кто использует API, а не умирают молча (и не виснут в состоянии "???").

Цитата Сообщение от hoggy Посмотреть сообщение
вообще по уму, годная система логгирования в случае краша должна уметь
аварийные действия
Это да. Но не более чем записать что то в лог

Добавлено через 23 минуты
Цитата Сообщение от hoggy Посмотреть сообщение
в котором можно прописать какие то конкретные действия.
например: послать логи разрабам,
и перезапустить сервис.
В таком случае логгер должен будет решать много задач что в сущности неверно.
Лучше просто в тех местах где логируются критические сбои вызвать ответственные компоненты по тем операциям которые нужно выполнить в случае возникновения проблемы.
Например
C++
1
2
3
4
5
if (criticalProblem) {
    Logger->log(WARN, "error message");
    Mailer->send("developer@gmail.com", Logger->getList()->toString());
    //other operations...
}
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.01.2017, 09:47
MrGluck, у нас на работе такие триллеры постоянно.
Так что hoggy все верно пишет. Хорошо продуманная система логирования
повышает шансы на успешную диагностику таких трудных багов.
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2017, 10:35
Цитата Сообщение от Убежденный Посмотреть сообщение
Хорошо продуманная система логирования повышает шансы на успешную диагностику таких трудных багов.
А можно простой пример? Хотя бы на словах

Под багом как правило подразумевается определенная ошибка в логике программы, которую программист не заметил сразу.

Если где либо в коде используется логирование, то это как правило те места, где разработчик понимает "вот в этом куске кода могут возникнуть проблемы при определенных условиях", и соответственно пишет в лог, если такая ситуация возникает.

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

И тогда финальный киллер-вопрос тем, кто позиционирует логгер в первую очередь как "баг хантер". Вопрос: а что если в самом логгере есть баг? Как тогда багнутый логгер поможет отдебажить это, если он сам не работает? Думаю теперь должно быть очевидно, что дебаг и лог никак не связаны друг с другом
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
28.01.2017, 10:41
Цитата Сообщение от Убежденный Посмотреть сообщение
MrGluck, у нас на работе такие триллеры постоянно.
Так что hoggy все верно пишет. Хорошо продуманная система логирования
повышает шансы на успешную диагностику таких трудных багов.
Так у нас тоже самое. Клиентов много, система большая, модульная. Настроек туча. Без логов поди определи почему сервер клиента на определённые посты не те ответы шлёт.
Потому и зацепило, что жизненно)
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.01.2017, 22:24
Цитата Сообщение от sys_beginner Посмотреть сообщение
А можно простой пример? Хотя бы на словах
Представь: большая многокомпонентная и многоуровневая программная система. Без логов ты просто
там заблудишься. Когда ошибка случится, ты даже не сможешь понять, с какого конца к ней подступиться и
где вообще искать концы. Логи позволяют диагностировать именно логические ошибки в ПО, т.е. когда
приложение не падает, но ведет себя не так, как было задумано. Если логирование делалось "по уму", то при
наличии воспроизведения можно очень быстро хотя бы определить проблемный компонент, остальное,
как правило, уже дело техники.

У нас в продуктах компании логирование давно стало обычной практикой и сейчас практически любой
баг-репорт, который приходит, в обязательном порядке содержит архив с логами соответствующих компонентов.
А компонентов много...

Цитата Сообщение от sys_beginner Посмотреть сообщение
Логи конечно же в каком то случае могут служить для отловки багов, но это лишь "полезный побочный эффект" их использования а не прямое назначение, как это позиционируется в данной теме.
Лично я вижу назначение логов в том, чтобы иметь возможность наблюдать за ходом программы в
ретроспективе, а также в том, чтобы иметь возможность быстро оценить ее реакцию на те или
иные изменения. Как правило, это используется для диагностики ошибок, хотя их можно использовать,
например, для анализа производительности и для других задач. Причем логи особенно хороши для
неинтерактивных приложений, не имеющих графического интерфейса - службы, серверы, подгружаемые
модули/плагины и т.д.

Цитата Сообщение от sys_beginner Посмотреть сообщение
И тогда финальный киллер-вопрос тем, кто позиционирует логгер в первую очередь как "баг хантер". Вопрос: а что если в самом логгере есть баг? Как тогда багнутый логгер поможет отдебажить это, если он сам не работает?
Лучше иметь плохо работающий логгер и хотя бы какие-то логи, чем не иметь вообще ничего.

Думаю теперь должно быть очевидно, что дебаг и лог никак не связаны друг с другом
Дебаг и логи, наверное, никак не связаны друг с другом. Но они прекрасно дополняют
друг друга Как и ассерты, как и юнит-тесты, как и контракты и т.п., они позволяют
повышать качество софта и облегчать диагностику ошибок.
3
28.01.2017, 22:36  [ТС]

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
сервер клиента
а почему у каждого клиента свой сервер?)

0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
28.01.2017, 22:36
И еще хотел бы вот что добавить на счет логов.

По логам иногда можно узнать много интересного по поводу программного окружения.
Например, клиент пишет: у меня не работает такая-то функция. Код ошибки такой-то,
система Windows 7, вот скриншот. Ты достаешь соответствующую версию софта,
ставишь на Windows 7, запускаешь - и все работает. УМВР, как говорится.
Что делать? Как искать ошибку?

Начинаешь смотреть логи. Оказывается, что у клиента Windows 7 стоит на Citrix.
А еще там какой-то израильский антивирус. И еще машина в домене, название
которого содержит кириллические имена (просто подозрительно, но все же).
И т.д. Когда ты проинсталлишь весь этот софт себе на тестовый стенд, то вдруг
обнаружишь, что и у тебя теперь функция тоже перестала работать.
Вот оно, воспроизведение ошибки. А там, где воспроизведение, там и до
исправления рукой подать (в 99% случаев).

У нас на работе такие "триллеры" - обыденность. Клиентов много, компьютеров
десятки и сотни тысяч, разные окружения, настройки, политики, софт и т.д.
Логи реально помогают докапываться до сути. Не представляю, что без них делать.
2
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
28.01.2017, 22:39  [ТС]
Убежденный, странный у вас софт если падает от названия домена и установленного антивируса) Прям вижу уже на обороте диска с игрой системные требование : "не устанавливайте AVAST и не используйте хостинга Trololo"
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2017, 22:57
Ух сколько написал ))
Цитата Сообщение от Убежденный Посмотреть сообщение
Представь: большая многокомпонентная и многоуровневая программная система. Без логов ты просто
там заблудишься. Когда ошибка случится, ты даже не сможешь понять, с какого конца к ней подступиться и
где вообще искать концы.
Поддерживаю, но
Цитата Сообщение от Убежденный Посмотреть сообщение
т.е. когда приложение не падает, но ведет себя не так, как было задумано.
это как правило означает, что программист что-то упустил. А в случае с логами это как раз те участки, которые заранее известны (программист же руками не зря в этом участке ведет логирование). Как можно залогировать то, о чем программист просто не подозревает, как ты сам отметил "работает не так как было задумано". Если ошибка в самой программе, то логи об этом не скажут. Максимум на что можно надеяться это на тот самый "побочный эффект" который есть не всегда. Я об этом.

Цитата Сообщение от Убежденный Посмотреть сообщение
Дебаг и логи, наверное, никак не связаны друг с другом.
Вот я об этом и говорю)) Насчет остального полностью поддерживаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2017, 22:57
Помогаю со студенческими работами здесь

Посоветуйте методы раскрутки для белого проекта
Занимаюсь сейчас планированием (в том числе бюджета) продвижения белого проекта для рунета (автомобильная тематика). Сайт с UG контентом +...

Дисковод не читает пустые dvd-r/rw и пустые cd-rw диски.
Дисковод не читает пустые dvd r/rw и пустые cd rw диски. Прибор для чтения - выдвинутый (кристаллик находится снаружи). Тип дисковода -...

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

Дебаг процедуры
Всем привет! Захотелось дебажить процедуру. Столкнулся с проблемами. С одной стороны в PL/SQL Developer есть функционал под дебаг. С...

Дебаг в Chrome
Пытаюсь выполнить console.log(); и выдаёт вот что. Как сделать так, что бы выводило в столбик, а не один рядок вывело и остановилось, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru