View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update | 
|---|---|---|---|---|---|
| 0000596 | Xdebug | Step Debugging | public | 2010-07-15 14:56 | 2020-03-12 17:19 | 
| Reporter | sklar | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | always | 
| Status | closed | Resolution | fixed | ||
| Product Version | 2.1.0 | ||||
| Summary | 0000596: Call breakpoint never works with instance methods, only static methods | ||||
| Description | If you set a call breakpoint with an instance method, the breakpoint will never get triggered. | ||||
| Additional Information | In xdebug_handler_dbgp.c, DBGP_FUNC(breakpoint_set) always stores the function name in the function_breakpoints hash as "class::method" (line 1133 in the 2.1.0 codebase). Which sort of makes sense here, since it's just been given -a class -m method from the client, it doesn't know whether it's a static method or an instance method. In xdebug.c handle_breakpoints(), though, the code checks whether the function is an instance or static function and then builds the name appropriately (class->method or class::method). So if it's an instance method, the name is built as "class->method" which is never found in the function_breakpoints hash. If I change handle_breakpoints() to always build the name as "class::method" then the breakpoint is triggered. | ||||
| Tags | No tags attached. | ||||
| Operating System | |||||
| PHP Version | 5.3.1 | ||||
| Date Modified | Username | Field | Change | 
|---|---|---|---|
| 2010-07-15 14:56 | sklar | New Issue | |
| 2010-07-15 14:56 | sklar | PHP Version | => 5.3.1 | 
| 2010-07-15 14:56 | sklar | Xdebug Version | => 2.1.0 | 
| 2010-07-20 19:20 | derick | Note Added: 0001534 | |
| 2010-07-23 23:26 | derick | Note Added: 0001541 | |
| 2010-07-23 23:26 | derick | Status | new => closed | 
| 2010-07-23 23:26 | derick | Resolution | open => fixed | 
| 2020-03-12 16:55 | derick | Severity | major => feature | 
| 2020-03-12 17:19 | derick | Category | Feature/Change request => Step Debugging | 
