The problem seems to be in the breakpoint_set command.
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"localSourceRoot": "Y:\\",
"serverSourceRoot": "/var/www/html",
"log": true,
"stopOnEntry": true
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
<- launchResponse
Response {
seq: 0,
type: 'response',
request_seq: 2,
command: 'launch',
success: true }
new connection 1
<- threadEvent
ThreadEvent {
seq: 0,
type: 'event',
event: 'thread',
body: { reason: 'started', threadId: 1 } }
<- initializedEvent
InitializedEvent { seq: 0, type: 'event', event: 'initialized' }
-> threadsRequest
{ command: 'threads', type: 'request', seq: 3 }
<- threadsResponse
Response {
seq: 0,
type: 'response',
request_seq: 3,
command: 'threads',
success: true,
body: { threads: [ Thread { id: 1, name: 'Request 1 (2:19:50 PM)' } ] } }
-> setBreakpointsRequest
{ command: 'setBreakpoints',
arguments:
{ source: { path: 'y:\\index.php', name: 'index.php' },
lines: [ 42 ],
breakpoints: [ { line: 42 } ],
sourceModified: false },
type: 'request',
seq: 4 }
<- setBreakpointsResponse
Response {
seq: 0,
type: 'response',
request_seq: 4,
command: 'setBreakpoints',
success: true,
body: { breakpoints: [ { verified: true, line: 42 } ] } }
-> setFunctionBreakpointsRequest
{ command: 'setFunctionBreakpoints',
arguments: { breakpoints: [] },
type: 'request',
seq: 5 }
<- setFunctionBreakpointsResponse
Response {
seq: 0,
type: 'response',
request_seq: 5,
command: 'setFunctionBreakpoints',
success: true,
body: { breakpoints: [] } }
-> setExceptionBreakpointsRequest
{ command: 'setExceptionBreakpoints',
arguments: { filters: [] },
type: 'request',
seq: 6 }
<- setExceptionBreakpointsResponse
Response {
seq: 0,
type: 'response',
request_seq: 6,
command: 'setExceptionBreakpoints',
success: true }
-> configurationDoneRequest
{ command: 'configurationDone', type: 'request', seq: 7 }
<- configurationDoneResponse
Response {
seq: 0,
type: 'response',
request_seq: 7,
command: 'configurationDone',
success: true }
<- stoppedEvent
StoppedEvent {
seq: 0,
type: 'event',
event: 'stopped',
body: { reason: 'entry', threadId: 1, allThreadsStopped: false } }
-> threadsRequest
{ command: 'threads', type: 'request', seq: 8 }
<- threadsResponse
Response {
seq: 0,
type: 'response',
request_seq: 8,
command: 'threads',
success: true,
body: { threads: [ Thread { id: 1, name: 'Request 1 (2:19:50 PM)' } ] } }
-> stackTraceRequest
{ command: 'stackTrace',
arguments: { threadId: 1, startFrame: 0, levels: 20 },
type: 'request',
seq: 9 }
<- stackTraceResponse
Response {
seq: 0,
type: 'response',
request_seq: 9,
command: 'stackTrace',
success: true,
body:
{ stackFrames:
[ { id: 1,
name: '{main}',
source: { name: 'index.php', path: 'Y:\\index.php' },
line: 27,
column: 1 } ] } }
-> scopesRequest
{ command: 'scopes',
arguments: { frameId: 1 },
type: 'request',
seq: 10 }
<- scopesResponse
Response {
seq: 0,
type: 'response',
request_seq: 10,
command: 'scopes',
success: true,
body:
{ scopes:
[ Scope { name: 'Locals', variablesReference: 1, expensive: false },
Scope { name: 'Superglobals', variablesReference: 2, expensive: false },
Scope {
name: 'User defined constants',
variablesReference: 3,
expensive: false } ] } }
-> variablesRequest
{ command: 'variables',
arguments: { variablesReference: 1 },
type: 'request',
seq: 11 }
<- variablesResponse
Response {
seq: 0,
type: 'response',
request_seq: 11,
command: 'variables',
success: true,
body:
{ variables:
[ { name: '$compilerConfig',
value: 'uninitialized',
type: 'uninitialized',
variablesReference: 0 },
{ name: '$mageFilename',
value: 'uninitialized',
type: 'uninitialized',
variablesReference: 0 },
{ name: '$mageRunCode',
value: 'uninitialized',
type: 'uninitialized',
variablesReference: 0 },
{ name: '$mageRunType',
value: 'uninitialized',
type: 'uninitialized',
variablesReference: 0 },
{ name: '$maintenanceFile',
value: 'uninitialized',
type: 'uninitialized',
variablesReference: 0 } ] } }
-> continueRequest
{ command: 'continue',
arguments: { threadId: 1 },
type: 'request',
seq: 12 }
<- continueResponse
Response {
seq: 0,
type: 'response',
request_seq: 12,
command: 'continue',
success: true }
<- threadEvent
ThreadEvent {
seq: 0,
type: 'event',
event: 'thread',
body: { reason: 'exited', threadId: 1 } }
-> disconnectRequest
{ command: 'disconnect',
arguments: { restart: false },
type: 'request',
seq: 13 }
<- disconnectResponse
Response {
seq: 0,
type: 'response',
request_seq: 13,
command: 'disconnect',
success: true }
The problem seems to be in the breakpoint_set command.
PHP version:
5.6.29-1+deb.sury.org~xenial+1
XDebug version:
2.5.0
Adapter version:
1.10.0
Your launch.json:
XDebug php.ini config:
XDebug logfile (from setting
xdebug.remote_login php.ini):Problem seems to be in the breakpoint_set, somehow much sourceroot seems to have gotten mixed up with the serverRoot
Adapter logfile (from setting
"log": truein launch.json):Fair warning I had to stitch this together manually because the selection gets cut off when scrolling down the adapter's console pane
Code snippet to reproduce: