# GSoC Update (XDebug project)

- Thread: https://externals.io/message/39361
- Original archive: https://news-web.php.net/php.internals/39361
- Started by Chung-Yang Lee on 2008-07-27T03:30:21+00:00
- Messages: 5
- Reply by email to internals@lists.php.net
- More for agents: search with https://externals.io/search.md?q={query} · JSON API at https://externals.io/api · documentation at https://externals.io/llms.txt

---

## #39361 — Chung-Yang Lee — 2008-07-27T03:30:21+00:00

URL: https://externals.io/message/39361#39361

I am Chung-Yang (Kenneth) Lee, a current master student in Indiana  
University Bloomington under the information science major.
For GSoC, I work on the XDebug project, which is to create a web front- 
end to deal with the profiler's output from XDebug.
The main goal is to create a web-based application that make the  
output more readable and helpful to developers.

[ Project Details ]

The goal of this project is to build an interface that can visualize  
the cachegrind / callgrind output from XDebug,
which is a pure text file containing information about function  
relationships within the code.
To achieve this goal, I selected EXT JS grid as the back-end supported  
library.
The system flow is users will first decide either to upload a file to  
be parsed or choose a file from an assigned directory.
After the file is uploaded / chosen, the system will extract and  
calculate required information from the file and format it into a JSON  
object.
The grid will then read in the JSON object and present the information  
to the front-end.
Users can perform functions like sorting, filtering, ungrouping,  
moving columns around, etc. on the grid.

[ Main Functionality ]

- File upload
- Cachegrind output parsing
- Track Function calls
- Track Function calls execution time
- Function call tree and track time/percent taken for the whole tree
processing and
- Percent and Time format output filtering
- List callers
- List callees
- Graph tree structure

[ Progress ]

Most of the functionalities were done.
Users can now upload a file to get parsed and visualized from the  
interface.
After the file is parsed, the interface will display information like  
function names, total self cost in ms and by percentage, invocation  
count.
The information is displayed in a grid after the file is parsed and  
users can perform sorting, grouping / ungrouping, and moving columns  
on the grid as for now.

Currently, I am working on the information filtering function that  
users can specify what information they need,
for example, filtering out php internal functions, searching time  
consumed by a function that is greater / less than a specified number,  
etc.
Making the file uploading process more manageable and making the whole  
application more configurable are two main tasks after the filtering  
function is done.

Thanks,
Kenneth

---

## #39384 — Rasmus Lerdorf — 2008-07-27T15:54:48+00:00

URL: https://externals.io/message/39361#39384 · In reply to: #39361

Chung-Yang(Kenneth) Lee wrote:
> Most of the functionalities were done.
> Users can now upload a file to get parsed and visualized from the
> interface.
> After the file is parsed, the interface will display information like
> function names, total self cost in ms and by percentage, invocation count.
> The information is displayed in a grid after the file is parsed and
> users can perform sorting, grouping / ungrouping, and moving columns on
> the grid as for now.

This sounds cool.  Can we try it somewhere?

-Rasmus

---

## #39386 — David Coallier — 2008-07-27T17:37:10+00:00

URL: https://externals.io/message/39361#39386 · In reply to: #39384

>
> This sounds cool.  Can we try it somewhere?
>

I'll setup a host in a few days when I get back from vacation :)


-- 
Slan,
David

---

## #39387 — Derick Rethans — 2008-07-27T18:04:41+00:00

URL: https://externals.io/message/39361#39387 · In reply to: #39386

> > […]
> 
> I'll setup a host in a few days when I get back from vacation :)

Isn't the source available through my CVS? If that's up to do date, it 
can be checked out with:

cvs -d :pserver:cvsread@cvs.xdebug.org:/repository co xdebug-web

You need to login first, and the password is "srmread".

regards,
Derick

-- 
HEAD before 5_3!: http://tinyurl.com/6d2esb
http://derickrethans.nl | http://ezcomponents.org | http://xdebug.org

---

## #39390 — Alan Knowles — 2008-07-28T00:57:14+00:00

URL: https://externals.io/message/39361#39390 · In reply to: #39361

Please be careful when using ExtJS - it has a GPL or proprietary only 
licence. - RooJS should be a plugin replacement for it.

see: http://www.roojs.com/trac/

Regards
Alan

Chung-Yang(Kenneth) Lee wrote:
> I am Chung-Yang (Kenneth) Lee, a current master student in Indiana 
> University Bloomington under the information science major.
> For GSoC, I work on the XDebug project, which is to create a web 
> front-end to deal with the profiler's output from XDebug.
> The main goal is to create a web-based application that make the 
> output more readable and helpful to developers.
>
> [ Project Details ]
>
> The goal of this project is to build an interface that can visualize 
> the cachegrind / callgrind output from XDebug,
> which is a pure text file containing information about function 
> relationships within the code.
> To achieve this goal, I selected EXT JS grid as the back-end supported 
> library.
> The system flow is users will first decide either to upload a file to 
> be parsed or choose a file from an assigned directory.
> After the file is uploaded / chosen, the system will extract and 
> calculate required information from the file and format it into a JSON 
> object.
> The grid will then read in the JSON object and present the information 
> to the front-end.
> Users can perform functions like sorting, filtering, ungrouping, 
> moving columns around, etc. on the grid.
>
> [ Main Functionality ]
>
> - File upload
> - Cachegrind output parsing
> - Track Function calls
> - Track Function calls execution time
> - Function call tree and track time/percent taken for the whole tree
> processing and
> - Percent and Time format output filtering
> - List callers
> - List callees
> - Graph tree structure
>
> [ Progress ]
>
> Most of the functionalities were done.
> Users can now upload a file to get parsed and visualized from the 
> interface.
> After the file is parsed, the interface will display information like 
> function names, total self cost in ms and by percentage, invocation 
> count.
> The information is displayed in a grid after the file is parsed and 
> users can perform sorting, grouping / ungrouping, and moving columns 
> on the grid as for now.
>
> Currently, I am working on the information filtering function that 
> users can specify what information they need,
> for example, filtering out php internal functions, searching time 
> consumed by a function that is greater / less than a specified number, 
> etc.
> Making the file uploading process more manageable and making the whole 
> application more configurable are two main tasks after the filtering 
> function is done.
>
> Thanks,
> Kenneth
