Re: Debugging PHP with GDB and php-debuginfo

2021-07-21 Thread Andrey Repin
Greetings, Jim Hyslop!

> I've installed the php-debuginfo extension for gdb, but I can't figure
> out how to set a breakpoint with it. Is there a manual for 
> php-debuginfo? All I can find is the package information.

> I'm trying to debug why a unit test is passing (it should fail). I'm 
> using the CakePHP framework (www.cakephp.org). From the command line, I 
> normally just execute `vendor/bin/phpunit`.

You're confusing debugging PHP code (i.e. website) with debudding PHP itself.
php-debuginfo is for the latter.

> With gdb, I execute `gdb $(which php)`, then at the command line in GDB 
> I type ` b ./tests/TestCase/Controller/UsersControllerTest.php:80`

> GDB responds with:
> No source file named 
> ./tests/TestCase/Controller/UsersControllerTest.php.
> Make breakpoint pending on future shared library load? (y or [n])

Entirely predictable. PHP is written in C, not PHP.

> The file name is valid. I've tried using the full path instead of the 
> relative path.

> When I run the tests with `r vendor/bin/phpunit` the unit tests all 
> execute, but GDB doesn't stop at the breakpoint.

> Do I need to modify php.ini to use gdb? Any pointers?

You need to install xdebug. And for that, you need to install native PHP, as
there's no PECL modules built for Cygwin.
Then use any suitable IDE (VS Code, PHPStorm, etc.) to step through the code.
Read phpunit instructions about allowing it running under debugger.


-- 
With best regards,
Andrey Repin
Wednesday, July 21, 2021 11:03:04

Sorry for my terrible english...


-- 
Problem reports:  https://cygwin.com/problems.html
FAQ:  https://cygwin.com/faq/
Documentation:https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple


Re: Debugging PHP with GDB and php-debuginfo

2021-07-20 Thread bzs


As much as I love GDB dearly and rely on it regularly you might want
to have a look at netbeans.apache.org which is also free and a more
general fancy UI IDE. If it's a web site you're developing for example
it will let you fire up a browser, put breakpoints in the php code,
and examine variables etc.

It's a little more complicated to set up than just using GDB but not
too bad (hint: install the Chrome browser ZDebug/XDebug/whateveritis
extension they recommend, and/or Firefox, or netbeans has a built-in
browser tho you probably want to know how your code works with chrome
and/or ff not their browser other than initial devpt.)

P.S. I generally edit my code with emacs. Netbeans notices a file has
changed and reloads -- it's magic (aka inotify(7)) tho use one (IDE
editing) or the other (emacs/vi/joe/jove/pico/externaleditor.)

The latest releases of netbeans (12.x) have gotten very good but once
in a while you just have to exit and restart it ("a communication
failure has occurred...") but no big deal just restart it, it
remembers your breakpoints etc., just to save you five minutes of
WTF?!

-- 
-Barry Shein

Software Tool & Die| b...@theworld.com | http://www.TheWorld.com
Purveyors to the Trade | Voice: +1 617-STD-WRLD   | 800-THE-WRLD
The World: Since 1989  | A Public Information Utility | *oo*

-- 
Problem reports:  https://cygwin.com/problems.html
FAQ:  https://cygwin.com/faq/
Documentation:https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple


Re: Debugging PHP with GDB and php-debuginfo

2021-07-20 Thread Russell VT via Cygwin
There's the "Magic Method" in PHP for __debuginfo()
.

Also see PHP RFC: __debugInfo() .

You may have better luck asking the PHP devs how to best use this with GDB,
or the GDB folks how to use the extension.

Hope that helps!

Russell VT


On Tue, Jul 20, 2021 at 3:55 PM Jim Hyslop  wrote:

> Hi, all
>
> I've installed the php-debuginfo extension for gdb, but I can't figure
> out how to set a breakpoint with it. Is there a manual for
> php-debuginfo? All I can find is the package information.
>
> I'm trying to debug why a unit test is passing (it should fail). I'm
> using the CakePHP framework (www.cakephp.org). From the command line, I
> normally just execute `vendor/bin/phpunit`.
>
> With gdb, I execute `gdb $(which php)`, then at the command line in GDB
> I type ` b ./tests/TestCase/Controller/UsersControllerTest.php:80`
>
> GDB responds with:
> No source file named
> ./tests/TestCase/Controller/UsersControllerTest.php.
> Make breakpoint pending on future shared library load? (y or [n])
>
> The file name is valid. I've tried using the full path instead of the
> relative path.
>
> When I run the tests with `r vendor/bin/phpunit` the unit tests all
> execute, but GDB doesn't stop at the breakpoint.
>
> Do I need to modify php.ini to use gdb? Any pointers?
>
> --
> Jim Hyslop
>
> --
> Problem reports:  https://cygwin.com/problems.html
> FAQ:  https://cygwin.com/faq/
> Documentation:https://cygwin.com/docs.html
> Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
>


-- 
Russell M. Van Tassell 

-- 
Problem reports:  https://cygwin.com/problems.html
FAQ:  https://cygwin.com/faq/
Documentation:https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple


Debugging PHP with GDB and php-debuginfo

2021-07-20 Thread Jim Hyslop

Hi, all

I've installed the php-debuginfo extension for gdb, but I can't figure 
out how to set a breakpoint with it. Is there a manual for 
php-debuginfo? All I can find is the package information.


I'm trying to debug why a unit test is passing (it should fail). I'm 
using the CakePHP framework (www.cakephp.org). From the command line, I 
normally just execute `vendor/bin/phpunit`.


With gdb, I execute `gdb $(which php)`, then at the command line in GDB 
I type ` b ./tests/TestCase/Controller/UsersControllerTest.php:80`


GDB responds with:
No source file named 
./tests/TestCase/Controller/UsersControllerTest.php.

Make breakpoint pending on future shared library load? (y or [n])

The file name is valid. I've tried using the full path instead of the 
relative path.


When I run the tests with `r vendor/bin/phpunit` the unit tests all 
execute, but GDB doesn't stop at the breakpoint.


Do I need to modify php.ini to use gdb? Any pointers?

--
Jim Hyslop

--
Problem reports:  https://cygwin.com/problems.html
FAQ:  https://cygwin.com/faq/
Documentation:https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple