View Issue Details

IDProjectCategoryView StatusLast Update
0001775XdebugStep Debuggingpublic2020-04-17 19:06
ReporterpluczkiewiczAssigned Toderick 
Status closedResolutionfixed 
Product Version2.9.4 
Target VersionFixed in Version2.9.5 
Summary0001775: Segfault when another extension compiles a PHP file during RINIT
DescriptionXdebug 2.9.1 and newer segfaults with ddtrace.
My understanding of what happens is that:
1. ddtrace's RINIT is executed first
2. during RINIT it compiles the request hook file:
3. In turn this leads to execution of xdebug_debugger_compile, which calls `get_file_function_line_list`, which tries to access `XG_DBG(breakable_lines_map)`
4. Since `XG_DBG(breakable_lines_map)` is initialized in RINIT (which was not executed yet)(, xdebug segfaults
Steps To Reproduce1. git clone
2. docker-compose up --build
3. hit http://localhost:8123/ with a browser/curl a few times (the segfault happens around 0000026:0000050% of the time)
TagsNo tags attached.
Operating System
PHP Version7.4.0-7.4.4



2020-04-06 14:34

administrator   ~0005377

How can I do this without Docker? Your docker container/setup likely has no debugging set-up whatsover...


2020-04-06 14:41

reporter   ~0005378

You can do this by installing php-fpm (I tested on 7.4.3 and 7.4.4), the ddtrace extension (I used 0.42.0, install instructions:, github repo: and xdebug.
Please make sure that the `extension=ddtrace` line is before `zend_extension=xdebug` in php.ini.

ddtrace setings
`ddtrace.request_init_hook=` - a valid path to a PHP script (the contents don't seem to matter).

xdebug settings:


2020-04-12 15:34

administrator   ~0005382

Did you actually check this with Xdebug 2.9.4? Because this is the same issue as 0001736, which was fixed by the authors of the ddtrace extension with the exact log message:

> Fixed issue 0001736: Segmentation fault when other extensions run PHP in RINIT
> Other extensions that run PHP in RINIT before Xdebug's RINIT (when XG_DBG(breakable_lines_map) is allocated) will cause a segmentation fault.

The fix for that is part of Xdebug 2.9.2.


2020-04-14 08:07

reporter   ~0005385

Yes. It's still failing on 2.9.2, 2.9.3 and 2.9.4. The interesting detail is that it's segfaulting on all of the requests on 2.9.1, but only on around half of them on 2.9.2 and later.


2020-04-14 15:10

reporter   ~0005388

I think the issue is that breakable_lines_map isn't initialized here: so there's no guarantee that the pointer will be NULL before the hashmap is allocated


2020-04-14 16:37

administrator   ~0005389

Last edited: 2020-04-14 16:37

View 2 revisions

I think it's just missing a

XG_DBG(breakable_lines_map) = NULL;


But I want to reproduce it first :-)


2020-04-16 10:46

administrator   ~0005390

This is now fixed in GIT. I could reproduce this with "php -S" and two requests.


2020-04-16 10:49

reporter   ~0005391

That's wonderful news. Thank you!


2020-04-17 19:06

reporter   ~0005397

Thanks Derick! I can confirm that this commit fixes the issue on my end as well. <3

Issue History

Date Modified Username Field Change
2020-04-06 14:32 pluczkiewicz New Issue
2020-04-06 14:34 derick Assigned To => derick
2020-04-06 14:34 derick Status new => feedback
2020-04-06 14:34 derick Note Added: 0005377
2020-04-06 14:41 pluczkiewicz Note Added: 0005378
2020-04-06 14:41 pluczkiewicz Status feedback => assigned
2020-04-12 15:34 derick Status assigned => feedback
2020-04-12 15:34 derick Note Added: 0005382
2020-04-14 08:07 pluczkiewicz Note Added: 0005385
2020-04-14 08:07 pluczkiewicz Status feedback => assigned
2020-04-14 15:10 pluczkiewicz Note Added: 0005388
2020-04-14 16:37 derick Note Added: 0005389
2020-04-14 16:37 derick Note Edited: 0005389 View Revisions
2020-04-16 10:46 derick Status assigned => closed
2020-04-16 10:46 derick Resolution open => fixed
2020-04-16 10:46 derick Fixed in Version => 2.9.5
2020-04-16 10:46 derick Note Added: 0005390
2020-04-16 10:49 pluczkiewicz Note Added: 0005391
2020-04-17 19:06 SammyK Note Added: 0005397