Π Π°Π·Π½ΠΎΠ΅

Debug Ρ€Π΅ΠΆΠΈΠΌ: Π”Π΅Π±Π°Π³ Π² WordPress: ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΊΠΎΠ΄Π°, WP_DEBUG

24.05.2018

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ 1Π‘ сСрвСра ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Debug

Π’Π΅ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° сСрвСрС 1Π‘ вСсьма Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, ΠΏΠΎ Π½Π΅ΠΉ Π² сСти Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ написано ΠΌΠ½ΠΎΠ³ΠΎ интСрСсных статСй, Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Если ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΎΠ±ΠΎΠΉ стоит Π·Π°Π΄Π°Ρ‡Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° сСрвСрС 1Π‘, Ρ‚ΠΎ эта ΡΡ‚Π°Ρ‚ΡŒΡ нСсомнСнно ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² этом!

Из ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… источников ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ:

Π’Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Β«ΠšΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Руководство администратора»

/debug

Запуск кластСра сСрвСров Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, с использованиСм ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ кластСрС сСрвСров:

  • -tcp ‑ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» TCP/IP;
  • -http ‑ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» HTTP.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: -tcp.

Π‘ΠžΠ’Π•Π’. Π’ связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ сСрвСра ΠΏΠ°Π΄Π°Π΅Ρ‚, рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… сСрвСров, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся ΠΎΡ‚Π»Π°Π΄ΠΊΠ°.

/debugServerAddr

Π’ΠΠ–ΠΠž! Π’Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° взята с сайта its.1c.ru.

Π”ΡƒΠΌΠ°ΡŽ, ΠΌΠ°Π»ΠΎ ΠΊΠΎΠΌΡƒ ΠΈΠ· нас этого Π±ΡƒΠ΄Π΅Ρ‚ достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π·Π½Π°Π½ΠΈΠΉ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Допустим, Ρ‚Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅ΡˆΡŒ Π·Π° ИВ инфраструктуру ΠΈ ΠΊ Ρ‚Π΅Π±Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ программист 1Π‘, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ! ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ 1Π‘ Π½Π΅ являСтся Π΄ΠΎΠΌΠ΅Π½Π½Ρ‹ΠΌ администратором ΠΈ Π½Π΅ смог произвСсти настройку ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Вопросы бСзопасности ΠΈ чувства самосохранСния Π½Π΅ Π½Π° послСднСм мСстС.

1Π‘ Π² сСрвСрном Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ комплСксного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ достигаСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ достаточных ΠΊΠΎΠΌΠΏΠ΅Ρ‚Π΅Π½Ρ†ΠΈΠΉ Ρƒ спСциалистов ΠΈΠ· Ρ€Π°Π·Π½Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ – программист 1Π‘, систСмный администратор, администратор Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

И ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΡƒΠΆΠ΅ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΎΠ± ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ прилоТСния, ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ солдаты «тыТсисадмин» ΠΈ «тыТпрограммист» ΡƒΠΆΠ΅ Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹. На Π΄Π°Π½Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ для систСмного администратора ΠΈ программиста 1Π‘ сильно разнятся ΠΈ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΡ…, ΠΎΡΡ‚Π°Π²Π°ΡΡΡŒ профСссионалом с большой Π±ΡƒΠΊΠ²Ρ‹ «П», ΡƒΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ?

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ слуТба Π°Π³Π΅Π½Ρ‚Π° сСрвСра 1Π‘ запускаСтся Π±Π΅Π· Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

Π•ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Π½ΠΎ рассмотрим самый Ρ…ΠΎΠ΄ΠΎΠ²ΠΎΠΉ – ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° рССстра Windows.

  1. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ рССстр Π½Π° сСрвСрС, Π³Π΄Π΅ установлСн сСрвСр 1Π‘.

  2. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈ ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡƒΡ‚ΠΈ:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)

    Имя Ρ€Π°Π·Π΄Π΅Π»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ вСрсии сСрвСра 1Π‘ – 8.2 / 8.1 ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ – 32 / 64 Π±ΠΈΡ‚Π½Ρ‹ΠΉ.

  3. Π—Π΄Π΅ΡΡŒ нас интСрСсуСт ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ImagePath, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ Π½Π°Π΄ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Β«debugΒ».

    ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•! Π’ Ρ€Π°Π·Π½Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ запуска Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ это ΠΌΠΎΠΆΠ΅Ρ‚ ввСсти Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. ΠšΠ»ΡŽΡ‡ Β«debugΒ» ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² любоС мСсто послС «C:\Program Files\1cv8\8.3.13.1644\bin\ragent.exe» ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊ Β«-Β», Ρ‚Π°ΠΊ ΠΈ Β«/Β».

    НапримСр, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ:

    «C:\Program Files\1cv8\8.3.13.1644\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo» -debug

    ΠΈ

    «C:\Program Files\1cv8\8.3.13.1644\bin\ragent.exe» /debug -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv8\srvinfo»

    ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ смотрится ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅ΠΉ.

    На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  4. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌ слуТбу «АгСнт сСрвСра 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΡ 8.3 (x86-64)Β».

ΠŸΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ – Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½!

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ 1Π‘ Π½Π° сСрвСрС

НастраиваСм Ρ„Π°Π΅Ρ€Π²ΠΎΠ».

Если ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ для провСдСния ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π΅ Π½Π° сСрвСрС 1Π‘, Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ TCP ΠΈ UDP ΠΏΠΎΡ€Ρ‚Ρ‹ для Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° 1560-1591.

На сторонС сСрвСра Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ TCP ΠΏΠΎΡ€Ρ‚Ρ‹ 1540, 1541, 1560-1591.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•! Π­Ρ‚ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ссли Π²Ρ‹ ΠΈΡ… мСняли, Ρ‚ΠΎ Π² Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Π΅ Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°:

  1. ЗапускаСм ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.
  2. Π—Π°Ρ…ΠΎΠ΄ΠΈΠΌ Π² мСню Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β» β€” Β«ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒΒ» ΠΈΠ»ΠΈ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«F5Β». Запустится ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ прСдприятия.
  3. НС закрывая 1Π‘ прСдприятиС, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² мСню Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β» β€” Β«ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅β€¦Β».

Если столбСц Β«Π’ΠΈΠΏΒ» Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Β«Π‘Π΅Ρ€Π²Π΅Ρ€Β», Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π˜Π΄Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ письмо программисту 1Π‘.

ΠŸΠ Π˜ΠœΠ•Π§ΠΠΠ˜Π•! Если сСрвСр ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ – Π½Π΅ ΠΎΠ΄ΠΈΠ½ сСрвСр, ставим Π³Π°Π»ΠΎΡ‡ΠΊΡƒ Β«Π˜ΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅Β»: ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ сСрвСр 1Π‘.

Π’ Π±Π»ΠΎΠΊΠ΅ «ДоступныС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ:Β» столбСц Β«Π’ΠΈΠΏΒ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Β«Π‘Π΅Ρ€Π²Π΅Ρ€Β». Если Ρƒ вас Ρ‚Π°ΠΊ, Ρ‚ΠΎ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

АрСндуя сСрвСр для 1Π‘ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ МАРБ Π’Π΅Π»Π΅ΠΊΠΎΠΌ, Π²Ρ‹ всСгда смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π½Π°ΡˆΠΈΡ… тСхничСских спСциалистов ΠΏΠΎ этому ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ вопросам.


Π Π΅ΠΆΠΈΠΌΡ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ «Debug» ΠΈ «Release» | Π£Ρ€ΠΎΠΊΠΈ Π‘++

  Обновл. 26 Июн 2020  | 

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ сборки (Π°Π½Π³Π». Β«build configurationΒ») β€” это Π½Π°Π±ΠΎΡ€ настроСк ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅Π³ΠΎ построСния. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ сборки состоит ΠΈΠ·:

Β  Β ΠΈΠΌΠ΅Π½ΠΈ исполняСмого Ρ„Π°ΠΉΠ»Π°;

Β  Β ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ исполняСмого Ρ„Π°ΠΉΠ»Π°;

Β  Β ΠΈΠΌΡ‘Π½ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… IDE Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ;

Β  Β ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сборки: Β«ReleaseΒ» (Π Π΅Π»ΠΈΠ·) ΠΈ Β«DebugΒ» (ΠžΡ‚Π»Π°Π΄ΠΊΠ°).

Β  Β ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Β«Debug» прСдназначСна для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚Π° конфигурация ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС настройки ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ваши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ большС ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Π½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. Π Π΅ΠΆΠΈΠΌ Β«DebugΒ» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Β  Β ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Β«ReleaseΒ»

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ врСмя сборки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Π΅Ρ‘ дальнСйшСго выпуска. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° оптимизируСтся ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π΅ содСрТит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

НапримСр, исполняСмый Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Β«Hello, World!Β» ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, созданный Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Β«DebugΒ», Ρƒ мСня Π·Π°Π½ΠΈΠΌΠ°Π» 65ΠšΠ‘, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ исполняСмый Ρ„Π°ΠΉΠ», построСнный Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Β«ReleaseΒ», Π·Π°Π½ΠΈΠΌΠ°Π» всСго лишь 12ΠšΠ‘.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ Β«DebugΒ» ΠΈ Β«ReleaseΒ» Π² Visual Studio

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ· Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ списка Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ быстрого доступа:

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ Β«DebugΒ» ΠΈ Β«ReleaseΒ» Π² Code::Blocks

Π’ Code::Blocks Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ быстрого доступа Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠΉ список, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Β«DebugΒ» ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Β«ReleaseΒ» ΠΏΡ€ΠΈ ΠΈΡ… Ρ€Π΅Π»ΠΈΠ·Π΅.


ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°…

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях:

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° Python, ΠΎΡ‚Π»Π°Π΄ΠΊΠ° / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Mail.ru Group / Π₯Π°Π±Ρ€Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±Π·ΠΎΡ€ΠΎΠΌ событийных ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ΠΎΠ².

БСгодня я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€ ΠΎΠ± ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ это Ρ‚Π°ΠΊΠΎΠ΅. По Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, обратимся ΠΊ Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ: Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° β€” ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, локализация ΠΈ устранСниС ошибок». Π’ΠΎΠΎΠ±Ρ‰Π΅, для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ (Π½ΠΎ Π½Π΅ всСгда достаточно) Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ‚ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ стСктрСйс: порядок Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ. ПолСзно Ρ‚Π°ΠΊ ΠΆΠ΅ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ± ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°: Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ (ΠΈΠ»ΠΈ отсутствиС) свободной памяти, систСмныС ограничСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° количСство Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов) ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π½ΠΎ это слСгка Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ нашСй ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Классика ΠΆΠ°Π½Ρ€Π°


Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ программист, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‡Π΅Ρ‚ Β«ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ½ΡƒΡ‚ΡŒΒ» Π²Π½ΡƒΡ‚Ρ€ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… (Π² Π½ΡƒΠΆΠ½Ρ‹Ρ… мСстах) ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ условий)? Он ΠΏΡ€ΠΈΠ±Π΅Π³Π°Π΅Ρ‚ ΠΊ самому распространённому, самому простому ΠΈ самому «дСйствСнному» способу ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: расставляСт ΠΏΠΎ всСму ΠΊΠΎΠ΄Ρƒ Β«ΠΏΡ€ΠΈΠ½Ρ‚Ρ‹Β» (ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ print Π² Python 2.x ΠΈ функция print() Π² Python 3.x). Но Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ Π³Ρ€Π΅ΡˆΠ°Ρ‚ этим: ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‡Π°ΡΡ‚Π΅Π½ΡŒΠΊΠΎ лСнятся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, надСясь Π±Ρ‹ΡΡ‚Ρ€Π΅Π½ΡŒΠΊΠΎ, Π·Π° ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚, Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ошибки ΠΈ всё ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ, ΠΈ Π½Π΅ замСчая, Ρ‡Ρ‚ΠΎ поиски ошибок Ρ€Π°ΡΡ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° часы ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π½ΠΈ. ΠšΡΡ‚Π°Ρ‚ΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ».

Бюда ΠΆΠ΅ относится запись всСй Π½ΡƒΠΆΠ½ΠΎΠΉ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π»ΠΎΠ³-Ρ„Π°ΠΉΠ». Иногда Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π½Π΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° скрипт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅ ΠΈ ошибки Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ эпизодичСски, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° ошибка проявляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π΄ΠΎΠ»Π³ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (скаТСм, Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π΅-Ρ‚Ρ€ΠΈ Π½Π΅Π΄Π΅Π»ΠΈ послС запуска).

Но ΠΌΡ‹ ΠΆΠ΅ пишСм Π½Π° Python, Ρ‚Π°ΠΊ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнными срСдствами ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ инструмСнтами, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡ‹ΠΌΠΈ сообщСством? НапримСр, вмСсто ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ логгирования Π² Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Sentry, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΡ€ΠΎΠΌΠ΅ сообщСния ΠΎΠ± ошибкС ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ: стСктрСйс со всСми Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ всё, Ρ‡Ρ‚ΠΎ посчитаСтС Π½ΡƒΠΆΠ½Ρ‹ΠΌ.

The Python Debugger


Python ΠΈΠΌΠ΅Π΅Ρ‚ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ pdb. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, Π½Π° этом ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ, Ρ‚.ΠΊ. pdb β€” Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, ΠΏΠΎ сути, всСго лишь Β«ΡƒΠΊΡ€Π°ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π°Β» ΠΊ Π½Π΅ΠΌΡƒ. Но ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ =)

Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΈΠ· названия, pdb ΠΌΠ½ΠΎΠ³ΠΎΠ΅ взял ΠΎΡ‚ gdb (GNU Project debugger) β€” ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π‘ΠΈ (ΠΈ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. К слову, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ gdb, просто это Π½Π΅ΠΌΠ½ΠΎΠΆΠΊΠΎ слоТнСС ΠΈ дольшС, хотя Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² устройство языка, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ ΡΠΈΡˆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для ΠΏΠΈΡ‚ΠΎΠ½Π° Π±Π΅Π· gdb Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, gdb позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (Ρ‡Π΅Ρ€Π΅Π· Π΅Ρ‘ pid) ΠΈ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π΅Ρ‘ ΠΎΡ‚Π»Π°Π΄ΠΊΠΎΠΉ «прямо Π½Π° мСстС».

Π― сСйчас Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ pdb, Π²ΠΎΡ‚ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ Π”Π°Π³Π° Π₯Π΅Π»Π»ΠΌΠ°Π½Π½Π° (Doug Hellmann): pdb – Interactive Debugger Π½Π° ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΌ рСсурсС Python Module of the Week, Π° Π²ΠΎΡ‚ Π΅Ρ‘ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° Ρ…Π°Π±Ρ€Π΅: pdb – Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ xa4a.

IPython pdb


ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ сразу ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ IPython ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ipdb для Π½Π΅Π³ΠΎ:
➜ pip install ipython ipdb

IPython (ΠΈ ipdb, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Ρ‡Π°ΡΡ‚ΡŒ) ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Β«Π±ΠΎΠ»Π΅Π΅ Π»ΡƒΡ‡ΡˆΡƒΡŽΒ» консоль ΠΈ, ΠΊΠ°ΠΊ слСдствиС, Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ: подсвСтка ΠΊΠΎΠ΄Π°, Π°Π²Ρ‚ΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ‚Ρ€ΠΎΡΠΏΠ΅ΠΊΡ†ΠΈΡŽ Π»ΡŽΠ±Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², магичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, алиасы ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ прямо ΠΈΠ· консоли IPython, ввСдя «?» Π² качСствС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Всё это ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‘ простой ΠΈ ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ.

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ скрипта Π² ipdb ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами:

➜ python -m ipdb script.py
➜ ipdb script.py

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ΠΊΡ€ΠΎΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ΅, дальшС ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ ΡƒΠ³ΠΎΠ΄Π½ΠΎ: ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π±Ρ€Π΅ΠΉΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹, ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ шагам ΠΈΠ»ΠΈ просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ β€” ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ автоматичСски остановится ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ Π½Π΅ΠΎΡ‚Π»ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Но ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ чСрСсчур ΠΈΠ·Π½ΡƒΡ€ΠΈΡ‚Π΅Π»Π΅Π½: ΠΏΠΎΠΊΠ° Π΄ΠΎΠ±Π΅Ρ€Ρ‘ΡˆΡŒΡΡ Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ мСста всСми этими Β«nextΒ», Β«stepΒ», Π΄Π° ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ останова (Β«breakΒ») Ρ€ΡƒΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Π“ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π² Π½ΡƒΠΆΠ½ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

import ipdb; ipdb.set_trace()

И Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ исполнСнии этой строки Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ приостановится ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, β€” дальшС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΡƒΠ³Π»ΡƒΠ±Π»ΡΡ‚ΡŒΡΡ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. По сути, функция Β«set_traceΒ» β€” это установка Ρ‚ΠΎΡ‡ΠΊΠΈ останова (breakpoint).
ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ для эстСтов

Π›ΡŽΠ±ΠΎΠΉ, ΠΊΠΎΠΌΡƒ Π·Π½Π°ΠΊΠΎΠΌΠ° Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° PEP8, Π² этом мСстС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π²ΠΈΠ½ΠΈΡ‚ΡŒ мСня Π² использовании Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΎΠ΄Π½ΠΎΠΉ строкС Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π²ΠΏΠΎΠ»Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° Тизнь. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (ΠΎΠ± этом позаботится ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…ΡƒΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт ΠΊΠΎΠ΄ Π½Π° соотвСтствиС PEP8 ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΈ ΠΏΡƒΡˆΠ΅ΠΌ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π°Π²Ρ‚ΠΎΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅). Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΏΡ€ΠΎΡ‰Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ эту строку Π² ΠΊΠΎΠ΄. Ну ΠΈ Π²-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΊΠ°ΠΊ написано Π² PEP8: Β«A Foolish Consistency is the Hobgoblin of Little MindsΒ».


Python Debugger ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях оказываСтся ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Ρ„ΡƒΠΊΠ½Ρ†ΠΈΠΈ set_trace. Он называСтся Β«post mortemΒ»: запуск ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ трСйсбСком:
try:
    some_code()
except:
    import sys
    import ipdb
    tb = sys.exc_info()[2]
    ipdb.post_mortem(tb)

ΠΈΠ»ΠΈ Ρ‚Π°ΠΊ:
import sys
import ipdb


def run_debugger(type, value, tb):
    ipdb.pm()


sys.excepthook = run_debugger
some_code()

Π’ случаС возникновСния Π»ΡŽΠ±Ρ‹Ρ… Π½Π΅ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«some_codeΒ» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π² Ρ‚ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

debug


Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«set_traceΒ» являСтся ΠΌΠΎΠ΄ΡƒΠ»ΡŒ debug, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ просто ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ipdb ΠΈ see (удобная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ dir) ΠΈ запускаСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ. ЕдинствСнным плюсом модуля являСтся удобство использования, достаточно Π² любом мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ строку:
import debug

И ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ этой строки Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Β«ipdbΒ» ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Β«seeΒ».

ipdbplugin


Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° интСрСсная ΠΈ, Π½Π° этот Ρ€Π°Π·, полСзная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°: nose-ipdb. Π‘ Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ автоматичСски Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… (ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ…) ΠΈΠ»ΠΈ ΠΆΠ΅ просто ΠΏΡ€ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… тСстах (я надСюсь, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ nose? =). Для запуска ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ipdb ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, достаточно ΠΏΡ€ΠΈ запускС тСстов Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ «—ipdb»:
➜ nosetests --ipdb

А для запуска ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΡ…ΡΡ тСстов Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ «—ipdb-failures»:
➜ nosetests --ipdb-failures

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΎΠ²ΠΈΡ‚ΡŒ всё ΠΈ сразу:
➜ nosetests --ipdb --ipdb-failures

Π― ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ этот ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ просто Π½Π΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ сСбС ΠΆΠΈΠ·Π½ΠΈ Π±Π΅Π· Π½Π΅Π³ΠΎ.

werkzeug


ΠŸΠΎΡ‚Ρ€ΡΡΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Армина Π ΠΎΠ½Π°Ρ…Π΅Ρ€Π° (Armin Ronacher), Π°Π²Ρ‚ΠΎΡ€Π° Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Flask ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΡ€ΡƒΡ‚Π΅ΠΉΡˆΠΈΡ… программистов Python называСтся werkzeug ΠΈ прСдставляСт собой сборник Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ для WSGI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Одна ΠΈΠ· Π½ΠΈΡ… β€” ΠΊΠ»Ρ‘Π²Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ трСйсбСк ошибки, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ консоль Python Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ мСстС трСйсбСка прямо Π½Π° страницС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°:

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто, достаточно ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ middleware:
from werkzeug.debug import DebuggedApplication
from myapp import app
app = DebuggedApplication(app, evalex=True)

Говорят, Ρ‡Ρ‚ΠΎ werkzeug ΡƒΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Ajax-запросы, Π½ΠΎ, ΠΊ соТалСнию, я сам Π»ΠΈΡ‡Π½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° этого Π½Π΅ Π΄Π΅Π»Π°Π». Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ Π»ΡŽΠ±Ρ‹ΠΌ коммСнтариям Π½Π° эту Ρ‚Π΅ΠΌΡƒ.

django-pdb


Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π° этот Ρ€Π°Π· для Django: django-pdb. Он позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ GET-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π² запросС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: http://127.0.0.1:8000/app/view?ipdb) Π»ΠΈΠ±ΠΎ для всСх запросов:
➜ python manage.py runserver --ipdb

Π›ΠΈΠ±ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (Ρ€Π΅ΠΆΠΈΠΌ Β«post-mortemΒ»):
➜ python manage.py runserver --pm

ΠΈΠ»ΠΈ
POST_MORTEM = True

Π² settings.py.

django-extensions


Но Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π² Django ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ django-extensions, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ добавляСт ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ runserver_plus. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Π±Π°Ρ‚Π°Ρ€Π΅ΠΉΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Django ΠΈ Werkzeug (см. Π²Ρ‹ΡˆΠ΅) ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ²ΠΎΠ»ΡŒΡΡ‚Π²ΠΈΠ΅ ΠΎΡ‚ страниц с пятисотой ошибкой =)

Для использования всСго этого Ρ‡ΡƒΠ΄Π° достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ дСвСлопСрский сСрвСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ runserver_plus:

➜ python manage.py runserver_plus

sentry


ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² дСвСлопСрском ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ самоС слоТноС β€” Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΏΠΎ Π±Π°Π³Ρ€Π΅ΠΏΠΎΡ€Ρ‚Ρƒ ΠΎΡ‚ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Иногда это Π±Ρ‹Π²Π°Π΅Ρ‚ слоТно. НСсмотря Π½Π° всС прСимущСства Python, модуля Β«Ρ‚Π΅Π»Π΅ΠΏΠ°Ρ‚ΠΈΠΈΒ» Π½Π΅ сущСствуСт, ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ остаётся ΠΎΠ΄ΠΈΠ½ Π½Π° ΠΎΠ΄ΠΈΠ½ со словами ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Β«Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!!!11Β».

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Sentry позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с тСкстом ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΏΠΎΠ»Π½Ρ‹ΠΌ стСктрСйсом ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ значСниями всСх Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ стСктрСйса, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Π±Ρ€Π°ΡƒΠ·Π΅Ρ€, ОБ), всС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ запроса ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ всё, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ.

ΠžΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ошибки Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° Β«ΠΏΡƒΠ»ΡŒΡΠΎΠΌΒ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Ρ‡ΠΈΠ½ΠΈΡ‚ΡŒ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ самыС ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ мСста. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования sentry β€” Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. МоТно просто Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² спорноС мСсто запись Π² Π»ΠΎΠ³ сообщСния с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, ΠΈ всё это окаТСтся Π² sentry.

Но самый большой плюс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всё это ΠΌΠΎΠΆΠ½ΠΎ (ΠΈ Π½ΡƒΠΆΠ½ΠΎ!) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

PuDB


Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ интСрСсный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ: PuDB прСдставляСт собой ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π±Π°Π³Π΅Ρ€ с графичСским интСрфСйсом:

НС Π±ΡƒΠ΄Ρƒ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Π½Ρ‘ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ (чСстно говоря, я сам Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΠΌ Π½Π΅ пользовался), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° Ρ…Π°Π±Ρ€Π΅: Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для Python/Django ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ int22h ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€: ΠžΡ‚Π»Π°Π΄ΠΊΠ° Python/Django ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ PuDB.

Winpdb


Standalone ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Python, Π½Π° этот Ρ€Π°Π· с ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΌ графичСским интСрфСйсом: Winpdb:

Π•Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ winpdb Π² 20 Ρ€Π°Π· быстрСС pdb, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ‚Ρ€Π΅Π΄Π°ΠΌΠΈ. ΠžΡ‡Π΅Π½ΡŒ большой ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π° этой страницС: code.google.com/p/winpdb/wiki/DebuggingTutorial.

IDE


ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ слова Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Β«ΠΊΠΎΠΌΠ±Π°ΠΉΠ½Ρ‹Β» программирования: IDE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π΅ выходя ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΎΡ‚ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π―, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π²Ρ‹Π΄Π΅Π»ΡŽ нСсколько ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Python: PyCharm, PyDev, Wing IDE ΠΈ PTVS.

ЛиричСскоС отступлСниС

К соТалСнию, Π»ΠΈΡ‡Π½ΠΎ я сколько Π½Π΅ пытался, Ρ‚Π°ΠΊ ΠΈ Π½Π΅ смог ΠΏΠ΅Ρ€Π΅ΡΠΈΠ»ΠΈΡ‚ΡŒ сСбя ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ удобство Ρ€Π°Π±ΠΎΡ‚Ρ‹ с консолью ΠΈ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ тСкстовым Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ (Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ vim, emacs ΠΈΠ»ΠΈ sublime text) Π½Π° Π»ΡŽΠ±ΡƒΡŽ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… IDE, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠΈ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ поэтому я ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ хотя Π±Ρ‹ Π΄Π°Ρ‚ΡŒ этим Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ шанс ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ….


Если чСстно, я Π½Π΅ Π²ΠΈΠΆΡƒ особого смысла Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· этих IDE, достаточно Π·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ со своими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ прямо ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, β€” это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΊΡ€ΡƒΡ‚ΠΎ ΠΈ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ.

Бпасибо всСм, ΠΊΡ‚ΠΎ Π΄ΠΎΡ‡ΠΈΡ‚Π°Π» ΠΈ ΠΏΡ€ΠΎΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π».

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π ΡƒΠ΄Π½Ρ‹Ρ…,
ВСхничСский Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ ΠšΠ°Π»Π΅Π½Π΄Π°Ρ€Ρ Mail.Ru.

Π Π°Π±ΠΎΡ‚Π° с Debug β€” Β«Π₯Π°ΠΊΠ΅Ρ€Β»

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΡŽΠ½Ρ‹ΠΉ Ρ…Π°ΠΊΠ΅Ρ€! Π’Ρ‹ ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ знаСшь, Π½ΠΎ ΠΊΡ€ΡƒΡ‚ΠΎΠΉ Ρ…Π°ΠΊΠ΅Ρ€ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ останавливаСтся Π½Π° достигнутом. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ посвящСна Ρ€Π°Π±ΠΎΡ‚Π΅ с стандартным Π΄Π΅Π±Π°Π³Π³Π΅Ρ€ΠΎΠΌ систСмы Π”ΠžΠ‘. Π’Ρ‹ скаТСшь: «На ΠΊΠΎΠΉ Ρ„ΠΈΠ³ ΠΌΠ½Π΅ это Π½Π°Π΄ΠΎ ΠΌΠ½Π΅, ΠΊΡ€ΡƒΡ‚ΠΎΠΌΡƒ ΠΏΠ΅Ρ€Ρ†Ρƒ?Β».Β 
ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ: Ρ‚Ρ‹ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡˆΡŒ Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΊΠ»ΡƒΠ± (ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΊΠ°Ρ„Π΅, ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ Π΄ΠΎΠΌΠΎΠΉ), Π° Ρ‚Π°ΠΌ Π½Π° Ρ‚Π°Ρ‡ΠΊΠ΅ дисководы сняты, сидюки Π·Π°ΠΊΠ»Π΅Π΅Π½Ρ‹, Π° ΠΏΠ°ΠΊΠΎΡΡ‚ΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ всС ΠΆΠ΅ хочСтся. ЕстСствСнно, Π½Π° любом Β«Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΒ» ΠΊΠΎΠΌΠΏΠ΅ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… компиляторов Π‘, ассСмблСров… Π½ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Β«Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΒ» ΠΊΠΎΠΌΠΏΠ΅ Π΅ΡΡ‚ΡŒ Π”ΠžΠ‘! Π”Π°, ΠΈΠΌΠ΅Π½Π½ΠΎ Π”ΠžΠ‘, ΠΈ Π΅Π³ΠΎ послСдоватСли — Π’ΠΈΠ½Π΄Ρ‹ всСх Ρ‚ΠΈΠΏΠΎΠ² Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°
DEBUG.

Как? ΠΠ°Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ (Ссли Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠ°Π»ΠΎ, Π΄Π° ΠΈ сил ΠΆΠ°Π»ΠΊΠΎ), Π½ΠΎ Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π½Π° дискС ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΌΠΎΡ€Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈΠ΅. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, ΠΊΠ°ΠΊ это дСлаСтся, Π½ΠΎ для Π½Π°Ρ‡Π°Π»Π° ΠΈΠ·ΡƒΡ‡ΠΈΠΌ нСсколько простых, Π½ΠΎ вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ запустили ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ DEBUG

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° –D (dump) <adress>.

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Π½ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ <adress> Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ сСгмСнт:смСщСниС.

Для Π½Π°Ρ‡Π°Π»Π° посмотрим ΠŸΠ—Π£ BIOS:

-d F000:E000

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ„ΠΈΡ€ΠΌΡƒ-производитСля вашСй
BIOS. А ΠΏΠΎ адрСсу:

-d F000:EC6C

ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ систСмС,
Ρ‚Π°ΠΊΡƒΡŽ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Π° создания Π‘Π˜ΠžΠ‘, чипсСт… А ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ адрСсу
(0000:046C) находится Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π‘Π˜ΠžΠ‘. ΠžΡ‚Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΎ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ значСния всС врСмя ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ.
Для программиста ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ сСгмСнты ΠΊΠΎΠΌΠ°Π½Π΄, Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ стСка (CS, DS ΠΈ SS, соотвСтствСнно).

-d DS:0000

Π’Ρ‹ΡˆΠ΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ содСрТимоС сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚. Π΅.
значСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

-d CS:100

А Ρ‚ΡƒΡ‚ прСдставлСно содСрТимоС сСгмСнта ΠΊΠΎΠΌΠ°Π½Π΄, Ρ‚.Π΅. ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ исполнСнию.
Освоив ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ просмотра памяти, впослСдствии ΠΌΡ‹ смоТСм эффСктивно ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ наши ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π½Π°ΠΌΠΈ ΠΊΠΎΠ΄ ΠΏΠ΅Ρ€Π΅Π΄ исполнСниСм (для нас сСйчас это приоритСтная Π·Π°Π΄Π°Ρ‡Π°).

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ваТная ΠΊΠΎΠΌΠ°Π½Π΄Π° -R (register) <register name>, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ состояниС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ рСгистра ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ состояниС ΠΈΠ»ΠΈ ΠΆΠ΅ сразу ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ выполняСмой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ с просмотром всСх рСгистров.

-r AX

AX 1203
: 0

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΌΡ‹ просматриваСм рСгистр АΠ₯ ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ Π΅Π³ΠΎ (пишСм Π² Π½Π΅Π³ΠΎ 0).
Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΉ выполняСмой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ (ΠΏΠΎ адрСсу CS:100):

-r

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000
SI=0000 DI=0000Β 
DS=3B9A ES=3B9A SS=3B9A CS=3B9A IP=0100 NV UP EI PL NZ NA PO NCΒ 
3B9A:0100 E82421 CALL 2227

Π’Ρ€Π΅Ρ‚ΡŒΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° –E (enter) Addres <command list>.

ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° ΠΎΠ½Π° для измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²
памяти – с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄Π°Ρ…. Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… сначала ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ младший Π±Π°ΠΉΡ‚
(ΠΏΠΎ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ адрСсу), Π·Π°Ρ‚Π΅ΠΌ – ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ (ΠΏΠΎ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ), Ρ‚. Π΅.Β 
Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎ адрСсу DS:0000 число 1234h Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ввСсти:

-E DS:0000 34 12

НапримСр Π²Π²Π΅Π΄Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

-E cs:100 B8 34 12
-D CS:100

А с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ U (unassemble) <starting address>, <ending adress> дизассСмблируСм Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ:
-U CS:100,102
3B9A:0100 B83412 MOV AX,1234

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ любой участок памяти, Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ.
Но вмСсто Π²Π²ΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° машинном языкС, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ встроСнным
ассСмблСром ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ DEBUG. Для этого сущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π°
-A (assemble) <adress>. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠΆΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ Π½Π° ассСмблСрС, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ дСйствия.:

-AΒ 
0B3B:0100 mov ax,1234
0B3B:0103 mov ah, 4c
0B3B:0105 int 21
0B3B:0107

А ΠΊΠ°ΠΊ ΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° дискС? Π‘Π½Π°Ρ‡Π°Π»Π° задаСтся имя Ρ„Π°ΠΉΠ»Π°:

-N my_file.com

Π—Π°Ρ‚Π΅ΠΌ Π² рСгистр Π‘Π₯ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π±Π°ΠΉΡ‚Π°Ρ…. Он Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π΅Π½ разности ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ смСщСний. Π’Π΅ΠΏΠ΅Ρ€ΡŒ остаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ запись Π½Π° диск ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ W ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ записанноС количСство Π±Π°ΠΉΡ‚ΠΎΠ². Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΊ исполнСнию. Π’Ρ‹Ρ…ΠΎΠ΄ осущСствляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ q. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

-AΒ 
0B3B:0100 mov ax,1234
0B3B:0103 mov ah, 4c
0B3B:0105 int 21
0B3B:0107Β 
-u CS:100, 106
0B3B:0100 B83412 MOV AX,1234Β 
0B3B:0103 B44C MOV AH,4CΒ 
0B3B:0105 CD21 INT 21Β 
-r cx
CX 0000
:7
-r
AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000Β 
DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV UP EI PL NZ NA PO NCΒ 
0B3B:0100 B83412 MOV AX,1234Β 
-N my.com
-W
Π—Π°ΠΏΠΈΡΡŒ 00007 Π±Π°ΠΉΡ‚
-q

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ способ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ возмоТности для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… пакостСй, ΠΏΡ€ΠΈΠΊΠΎΠ»ΠΎΠ², Π΄Π° ΠΈ просто программистов-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ – вСдь Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для создания Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, вмСсто установки компиляторов, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ стандартными срСдствами систСмы, Π° DEBUG Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² поставку Π²ΠΎ всС Π’ΠΈΠ½Π΄Ρ‹ Π²ΠΏΠ»ΠΎΡ‚ΡŒ Π΄ΠΎ Π₯Π . Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ вСсСлСС провСсти врСмя Π·Π° Ρ‡ΡƒΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠΌ, вызывая истинноС ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ хозяина (дисков ΠΈ дискСт-Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ приносили!!!) Π½ΠΎΠ²Ρ‹ΠΌΠΈ эффСктами Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅Π³ΠΎ оборудования. УспСхов, ΡŽΠ½Ρ‹Π΅ Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΠΈ Ρ…Π°ΠΊΠ΅Ρ€Π½ΠΎΠ³ΠΎ экстрима!

Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΠΎ USB Π½Π° Android

&nbsp для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… | ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ устройства

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΠΎ USB Π½Π° Android устройствС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ для самых Ρ€Π°Π·Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ: ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ Π² adb shell (ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°, кастомный Ρ€Π΅ΠΊΠ°Π²Π΅Ρ€ΠΈ, запись экрана), Π½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Π°Ρ функция ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ для восстановлСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Android.

Π’ этой пошаговой инструкции ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΠΎ USB Π½Π° Android 5-7 (Π² ΠΎΠ±Ρ‰Π΅ΠΌ-Ρ‚ΠΎ, Ρ‚ΠΎ ΠΆΠ΅ самоС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Π½Π° вСрсиях 4.0-4.4), Π² Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π½Π° Android 9 Pie ΠΈ Π½Π° смартфонах Samsung Galaxy.

Π‘ΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Ρ‹ ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню Π² руководствС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ чистой ОБ Android 6 Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Moto (Ρ‚ΠΎ ΠΆΠ΅ самоС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° Nexus ΠΈ Pixel), Π½ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π² дСйствиях Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… устройствах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Samsung, LG, Lenovo, Meizu, Xiaomi ΠΈΠ»ΠΈ Huawei Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, всС дСйствия практичСски Ρ‚Π΅ ΠΆΠ΅ самыС, Ρ‚Π°ΠΊΠΆΠ΅ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ тСкстовыС ΠΏΡƒΡ‚ΠΈ для настроСк Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… вСрсиях Android ΠΈ ΠΌΠ°Ρ€ΠΊΠ°Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΎΠ².

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎ USB Π½Π° Android Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ ΠΈΠ»ΠΈ ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΠΎ USB, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Android, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

  1. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² Настройки ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ «О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β» ΠΈΠ»ΠΈ «О ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Π΅Β», Π½Π° Samsung β€” «БвСдСния ΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β» β€” «БвСдСния ΠΎ ПО». На чистом Android 9.0 Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΡƒΠ½ΠΊΡ‚ «БистСма» β€” «О Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅Β».
  2. НайдитС ΠΏΡƒΠ½ΠΊΡ‚ «НомСр сборки» (Π½Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… Xiaomi ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… β€” ΠΏΡƒΠ½ΠΊΡ‚ «ВСрсия MIUIΒ») ΠΈ нСсколько Ρ€Π°Π· Π½Π°ΠΆΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΠΎ Π½Π΅ΠΌΡƒ, ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ стали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ.Β 

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² мСню «Настройки» вашСго Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° появится Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β» ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ этапу (ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ: Как Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° Android).

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎ USB Ρ‚Π°ΠΊΠΆΠ΅ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΡ‡Π΅Π½ΡŒ простых шагов:

  1. Π—Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² «Настройки» β€” «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β». На Android 9, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Nokia β€” Π² Настройки β€” БистСма β€” Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ β€” Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². На Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… китайских Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Xiaomi β€” Π² Настройки β€” Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ β€” Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ Настройки β€” Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ настройки β€” Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Если Π²Π²Π΅Ρ€Ρ…Ρƒ страницы Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ установлСн Π² ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Π’Ρ‹ΠΊΠ»Β», ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Β«Π’ΠΊΠ»Β».
  2. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ°Β» Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚ Β«ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΠΎ USBΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΠΎ USB.
  3. ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² ΠΎΠΊΠ½Π΅ Β«Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΠΎ USBΒ», Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.

На этом всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ β€” ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΠΎ USB Π½Π° вашСм Android Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π²Π°ΠΌ цСлями.

Π’ΠΈΠ΄Π΅ΠΎ инструкция

Π’ дальнСйшСм, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅ мСню, Π° ΠΏΡ€ΠΈ нСобходимости β€” ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· мСню НастроСк ΠΏΡƒΠ½ΠΊΡ‚ «Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²Β» (ссылка Π½Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ дСйствиями Π±Ρ‹Π»Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π²Ρ‹ΡˆΠ΅).

А Π²Π΄Ρ€ΡƒΠ³ ΠΈ это Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно:

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ — PZwiki

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π» Π² настоящСС врСмя ΠŸΠžΠ” Π‘Π’Π ΠžΠ˜Π’Π•Π›Π¬Π‘Π’Π’ΠžΠœ .
Π’ процСссС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ рСструктуризации. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Π΅Π³ΠΎ создании, Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π² Π΅Π³ΠΎ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ сначала Π·Π°ΠΉΡ‚ΠΈ Π½Π° страницу обсуТдСния.
Если эта страница Π½Π΅ обновлялась Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ это ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅. ПослСднСС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ 01/08/2019 Vaileasys.
ΠžΠ±Ρ‰Π°Ρ опция ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ — это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ состояниС Π² Project Zomboid. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρƒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π΅ΡΡ‚ΡŒ доступ ΠΊ нСскольким инструмСнтам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‡ΠΈΡ‚Ρ‹, Ρ‚Π΅Π»Π΅ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π² любоС мСсто ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ LShift Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ³Ρ€Ρ‹ ΠΈΠ»ΠΈ для Π±ΠΎΠ»Π΅Π΅ постоянной ΠΎΠΏΡ†ΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ -debug ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ запуска ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎ Π΅Π΅ запуска.

сцСнарий ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Бписок сцСнариСв ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню.

Бписок сцСнариСв ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π³Π»Π°Π²Π½ΠΎΠΌ мСню. Π”Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ запускаСт ΠΈΠ³Ρ€Ρƒ ΠΏΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сцСнарии ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΏΡƒΡ‚Π΅ΠΌ рСдактирования Β«DebugScenario.luaΒ» Π² Β«ProjectZomboid \ media \ lua \ client \ DebugUIs \ ScenariosΒ» ΠΈΠ»ΠΈ созданиСм Π½ΠΎΠ²ΠΎΠ³ΠΎ сцСнария.

МСню ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ — это ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ³Ρ€ΠΎΠΊΡƒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ / ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниСм ΠΈΠ³Ρ€Ρ‹.


Π’ ΠΈΠ³Ρ€Π΅ сСрый Π·Π½Π°Ρ‡ΠΎΠΊ ΠΆΡƒΡ‡ΠΊΠ° слСва ΠΎΡ‚ HUD появится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ. НаТав Π½Π° это, ΠΎΠ½ станСт красным ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ мСню ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Π—Π½Π°Ρ‡ΠΎΠΊ мСню ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.
ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ мСню.

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ

Π˜Π³Ρ€Π°

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ всС основныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ³Ρ€Ρ‹. Π’ настоящСС врСмя СдинствСнным Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся Β«GameSpeedΒ».

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ³Ρ€Ρ‹
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ОписаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
GameSpeed ΠžΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹, пСрСмСщая ΠΏΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ. НаТатиС Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ стрСлок ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ / ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈΠ³Ρ€Ρ‹ Π½Π° 0.1 шаг Π·Π° Ρ€Π°Π·, ΠΈΠ»ΠΈ 1,0, Ссли ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ спринта (LShift ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ 1 Π΄ΠΎ 1000 с шагом 0,1. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ = 1
ускорСнная ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° Π²ΠΏΠ΅Ρ€Π΅Π΄ = 5
ускорСнная ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚ΠΊΠ° Π²ΠΏΠ΅Ρ€Π΅Π΄ = 20
ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ = 40
Moodles and Body
Бтатистика ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈ Ρ‚Π΅Π»ΠΎ
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ОписаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
Π“ΠΎΠ»ΠΎΠ΄ ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π° Π³ΠΎΠ»ΠΎΠ΄ мудСля, увСличиваСтся Π΄ΠΎ 1 СстСствСнно. ΠΌΠΈΠ½ = 0
макс = 1
Π–Π°ΠΆΠ΄Π° Π‘Π»Π°ΠΉΠ΄Π΅Ρ€, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΠΆΠ°ΠΆΠ΄Ρƒ, увСличиваСтся Π΄ΠΎ 1 СстСствСнно. ΠΌΠΈΠ½ = 0
макс = 1
Π£ΡΡ‚Π°Π»ΠΎΡΡ‚ΡŒ ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π½Π° ΡƒΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ Π»ΡƒΠΊΠ°, увСличиваСтся Π΄ΠΎ 1 СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠΌΠΈΠ½ = 0
макс = 1
Π’Ρ‹Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ‚ΡŒ Π‘Π»Π°ΠΉΠ΄Π΅Ρ€, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ‹Π½ΠΎΡΠ»ΠΈΠ²ΠΎΡΡ‚ΡŒ Π»ΡƒΠΊΠ°, увСличиваСтся Π΄ΠΎ 1 СстСствСнно. ΠΌΠΈΠ½ = 0
макс = 1
ЀитнСс Π‘Π»Π°ΠΉΠ΄Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ влияСт Π½Π° фитнСс-Π½Π°Π²Ρ‹ΠΊ.Π­Ρ‚ΠΎ динамичСский Π½Π°Π²Ρ‹ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ дСйствий ΠΈΠ³Ρ€ΠΎΠΊΠ° с шагом 0,2 (Π·Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ). ΠΌΠΈΠ½ = -1
макс = 1
ΠŸΡŒΡΠ½ΡΡ‚Π²ΠΎ ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠΉ Π½Π° пьяного лакомства, СстСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 0. Полная Π±ΡƒΡ‚Ρ‹Π»ΠΊΠ° алкоголя добавляСт 0,41. Π‘ΠΎΠ»Π΅Π΅ высокоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ ΡƒΡΡ‚Π°Π»ΠΎΡΡ‚ΡŒ Moodle с Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСй ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. ΠΌΠΈΠ½ = 0
макс = 100
Π“Π½Π΅Π² Π‘Π»Π°ΠΉΠ΄Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ воздСйствуСт Π½Π° Π·Π»ΠΎΠ³ΠΎ Π»ΡƒΠΊΠ°Π²Π°, СстСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 0. ΠΌΠΈΠ½ = 0
макс = 1
Π‘Ρ‚Ρ€Π°Ρ… ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ влияСт Π½Π° нСизвСстноС СстСствСнноС статичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠΌΠΈΠ½ = 0
макс = 1
Π‘ΠΎΠ»ΡŒ ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ воздСйствуСт Π½Π° боль Moodle, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 0 СстСствСнно. НСвозмоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΈΠ½ = 0
макс = 100
Паника ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ воздСйствуСт Π½Π° ΠΏΠ°Π½ΠΈΠΊΡƒ Moodle, СстСствСнно ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 0. ΠΌΠΈΠ½ = 0
макс = 100
ΠœΠΎΡ€Π°Π»ΡŒ ΠŸΠΎΠ»Π·ΡƒΠ½ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ СстСствСнным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π΄ΠΎ 0, ΠΊΠΎΠ³Π΄Π° напряТСниС Π²Ρ‹ΡˆΠ΅ 0.5. Когда стрСсс Π½ΠΈΠΆΠ΅ 0,5, Π±ΠΎΠ΅Π²ΠΎΠΉ Π΄ΡƒΡ… ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ станСт 1,0. ΠΌΠΈΠ½ = 0
макс = 1
БтрСсс Π‘Π»Π°ΠΉΠ΄Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ влияСт Π½Π°
.

c ++ — Как ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ выпуска?

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
  1. Π’ΠΎΠ²Π°Ρ€Ρ‹
  2. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹
  3. Π‘Π»ΡƒΡ‡Π°ΠΈ использования
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹
  2. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ЧастныС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ для вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
  3. прСдприятиС ЧастныС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ для вашСго прСдприятия
  4. Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста
  5. Π’Π°Π»Π°Π½Ρ‚ ΠΠ°Π½ΠΈΠΌΠ°Ρ‚ΡŒ тСхничСский Ρ‚Π°Π»Π°Π½Ρ‚
  6. Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° Π‘Π²ΡΠ·Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ

Загрузка…

  1. ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  2. Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сообщСство

    • ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Ρ‡Π°Ρ‚
.

c ++ — Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈΠ»ΠΈ Ρ€Π΅ΠΆΠΈΠΌ выпуска

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
  1. Π’ΠΎΠ²Π°Ρ€Ρ‹
  2. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹
  3. Π‘Π»ΡƒΡ‡Π°ΠΈ использования
  1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹
  2. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ЧастныС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ для вашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹
  3. прСдприятиС ЧастныС вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ для вашСго прСдприятия
  4. Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста
  5. Π’Π°Π»Π°Π½Ρ‚ ΠΠ°Π½ΠΈΠΌΠ°Ρ‚ΡŒ тСхничСский Ρ‚Π°Π»Π°Π½Ρ‚
  6. Ρ€Π΅ΠΊΠ»Π°ΠΌΠ° Π‘Π²ΡΠ·Π°Ρ‚ΡŒΡΡ с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΠΎ всСму ΠΌΠΈΡ€Ρƒ

Загрузка…

  1. ΠΠ²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  2. Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ сообщСство

    • ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Ρ‡Π°Ρ‚
.

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ | Π²Π²Π²Π²

русский | Π˜Ρ‚Π°Π»ΡŒΡΠ½ΡΠΊΠΈΠΉ

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ


CTRL + F9

Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, затрагивая всС ΠΏΠ°Ρ‚Ρ‡ΠΈ / ΡƒΠ·Π»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС vvvv.exe

SHIFT + CTRL + F9

Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, затрагивая Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ°Ρ‚Ρ‡ΠΈ / ΡƒΠ·Π»Ρ‹.


ВрСбуСтся ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΡ‚ devvvs для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…:

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ†Π²Π΅Ρ‚Π° Π½Π° Π²Ρ…ΠΎΠ΄Π°Ρ…?
Π·Π΅Π»Π΅Π½Ρ‹ΠΉ , каТСтся, Π²Ρ…ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅.(см. Π½ΠΈΠΆΠ΅)
красный , каТСтся, являСтся Π²Ρ…ΠΎΠ΄ΠΎΠΌ / Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ измСняСт счСтчик спрСдов (каТСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСстах)
синий , каТСтся, рассчитываСтся ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄ / Π²Ρ‹Ρ…ΠΎΠ΄.
~~ # cccccc: Π±Π΅Π»Ρ‹ΠΉ ~~ Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ ???

Π£Π·Π΅Π» с сСрыми ΡˆΡ‚ΠΈΡ„Ρ‚Π°ΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ «АвтооцСнка» ΠΈ являСтся «НСактивным»

    ΠžΠΏΡ†ΠΈΡ
  • АвтоматичСская ΠΎΡ†Π΅Π½ΠΊΠ° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π΅Π³ΠΎ собствСнныС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ.
  • ΠžΠΏΡ†ΠΈΡ
  • Autoevaluate Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΡƒΠ·Π΅Π» выполняСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ°Π΄Ρ€.

Π”Π²Π° Ρ‚ΠΈΠΏΠ° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для значСния Π² vvvv:

  • Value In: ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ PinH, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ спрСд с послСдним ΠΊΠ°Π΄Ρ€ΠΎΠΌ (срСз Π½Π° срСз). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли ваш Ρ€Π°Π·ΠΌΠ΅Ρ€ спрСда составляСт 50000, Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ 50000 Ρ€Π°Π²Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΈΠ½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всСгда ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΈΠΉ спрСд ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ большой спрСд. Когда для события Β«PinIsChangedΒ» установлСно Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ «истина», Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал становится Π·Π΅Π»Π΅Π½Ρ‹ΠΌ.
  • Value Fast In: Π½Π΅ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ спрСда, поэтому ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅.ПолСзно, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ нСзависимо.

Π² ΠΊΠ°ΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ значСния?

ЗначСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² тысячах Ρ‚ΠΈΠΊΠΎΠ².

Π’ΠΈΠΊ — это самая низкая Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСссора, поэтому ΠΎΠ½Π° зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссора.

ВСроятно, Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ соврСмСнных процСссоров ПК 1 Ρ‚Π°ΠΊΡ‚ = 1/10000 миллисСкунд.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли вашС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ 130, Π²Π°ΡˆΠ΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ трСбуСтся 13 мс для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

(ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это, создали ΠΏΠ»Π°Π³ΠΈΠ½ с Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ hi perf ΠΈ Π²Ρ‹Π²Π΅Π»ΠΈ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ»Π°Π³ΠΈΠ½Π° Π² Ρ€ΠΎΠ·Π΅Ρ‚ΠΊΡƒ, Ρ‡Ρ‚ΠΎ, казалось, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΎ это).

ΠžΡ‚Π»Π°Π΄ΠΊΠ° спрСдов

CTRL + F10

Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ / Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ распространСнных ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Ρ… записСй, затрагивая всС ΠΏΠ°Ρ‚Ρ‡ΠΈ / ΡƒΠ·Π»Ρ‹ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ экзСмплярС vvvv.exe

Бсылка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любой ΠΈΠ· 4 стилСй:

 ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€: ΠΏΡ€ΠΈ пСрСносС ΓΈ
    Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ: ΠΏΡ€ΠΈ пСрСноскС 1 Π»ΠΎΠΌΡ‚ΠΈΠΊ
    Ρ‚ΠΎΠ½ΠΊΠΈΠΉ: ΠΏΡ€ΠΈ пСрСносС количСства срСзов ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ максимального количСства спрСдов
    толстый: ΠΏΡ€ΠΈ пСрСносС количСства срСзов, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ максимального количСства спрСдов
    ΠΆΠΈΡ€: ΠΏΡ€ΠΈ ношСнии ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ спрСд
 

ΠœΡ‹ надССмся, Ρ‡Ρ‚ΠΎ это Π±ΡƒΠ΄Π΅Ρ‚ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² спрСдам ΠΈΠ»ΠΈ ΠΎΡ…ΠΎΡ‚Π΅ Π½Π° большиС спрСды ΠΈΠ»ΠΈ ΓΈ.

,

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *