DBGp

Common DeBugGer Protocol as used by Xdebug{{cite web|last1=Rethans|first1=Derick|title=Main contributor to DBGp|url=https://github.com/derickr/dbgp|website=github|date=10 March 2022 }} and potentially other implementations. DBGp is a simple protocol for use with language tools and engines for the purpose of debugging applications.{{cite web|title=Xdebug: Documentation for DBGp|url=http://xdebug.org/docs-dbgp.php#description|website=Xdebug}}

The protocol provides a means of communication between a debugger engine (scripting engine, Virtual Machine, etc.) and a debugger IDE.

Criticisms

DBGp has not received widespread adoption as a server protocol. Most implementations are client-side so that IDEs may be compatible specifically with Xdebug, which remains popular.

Criticisms have included:{{Cite web|url=https://github.com/krakjoe/phpdbg/issues/105|title=Support DBGP protocol for easy integration with IDEs and tools · Issue #105 · krakjoe/phpdbg|website=GitHub|access-date=2016-09-25}}{{Dead link|date=November 2019 |bot=InternetArchiveBot |fix-attempted=yes }}{{Cite web|url=http://guyharpaz.blogspot.hu/2006/05/php-ide-debug-protocol.html|title=Guy Harpaz Blog: PHP IDE Debug Protocol|website=guyharpaz.blogspot.hu|access-date=2016-09-25}}

  • Performance (DBGp is a text-mode protocol)
  • Security (DBGp has a complex connection mechanism that could lead to buggy vulnerable implementations)
  • Generality (DBGp is designed to be compatible with multiple programming languages rather than being optimized for PHP)

A primary author of the DBGp specification has defended the design.{{Cite web|url=https://derickrethans.nl/debugging-protocol-shootout.html|title=Debugging Protocol Shoot-out — Derick Rethans|last=Rethans|first=Derick|website=derickrethans.nl|access-date=2016-09-25}}

References