This is an automated email from the ASF dual-hosted git repository.

skygo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-website.git


The following commit(s) were added to refs/heads/master by this push:
     new 9f89afaed add blogs entry + related document
     new 30e9dc86f Merge pull request #674 from ebarboni/blogentry2017
9f89afaed is described below

commit 9f89afaedac8c73cc395319e5b6f75751e39cea7
Author: Eric Barboni <[email protected]>
AuthorDate: Fri Aug 4 14:12:37 2023 +0200

    add blogs entry + related document
---
 .../announce-apache-netbeans-incubating-9.adoc     |   2 +-
 .../entry/apache-netbeans-at-oracle-code.adoc      |   4 +-
 .../introducing-the-apache-netbeans-blogs.adoc     |  46 ++
 .../blogs/entry/netbeans-at-oracle-code-one.adoc   |  66 +-
 .../netbeans-for-javaee-project-productivity.adoc  |  10 +-
 .../entry/netbeans-status-interview-at-devox.adoc  |  39 ++
 .../netbeans-status-interview-at-javaone.adoc      |  40 ++
 .../entry/php-conditional-breakpoints-and-new.adoc |   1 +
 .../blogs/entry/the-case-of-the-different.adoc     |  72 +++
 .../src/content/wiki/HowToConfigureXDebug.adoc     | 708 +++++++++++++++++++++
 .../src/content/wiki/JavacDiff.adoc                | 123 ++++
 .../src/content/wiki/debug-setup-flowchart.pdf     | Bin 0 -> 46701 bytes
 .../phpinfo_phpversion_HowToConfigureXDebug.png    | Bin 0 -> 33196 bytes
 .../phpinfo_thread_safety_HowToConfigureXDebug.png | Bin 0 -> 12232 bytes
 .../content/wiki/xdebug_HowToConfigureXDebug.png   | Bin 0 -> 19057 bytes
 15 files changed, 1083 insertions(+), 28 deletions(-)

diff --git 
a/netbeans.apache.org/src/content/blogs/entry/announce-apache-netbeans-incubating-9.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/announce-apache-netbeans-incubating-9.adoc
index 093651218..22dd95ade 100644
--- 
a/netbeans.apache.org/src/content/blogs/entry/announce-apache-netbeans-incubating-9.adoc
+++ 
b/netbeans.apache.org/src/content/blogs/entry/announce-apache-netbeans-incubating-9.adoc
@@ -40,7 +40,7 @@ See the below for the donation status of features that have 
not been donated to
 
 
link:https://cwiki.apache.org/confluence/display/NETBEANS/Apache+Transition[https://cwiki.apache.org/confluence/display/NETBEANS/Apache+Transition]
 
-Note: Apache NetBeans (incubating) 9.0 Beta is primarily focused on IP 
clearance. Its functionality has not been tested � the NetCAT (NetBeans 
Community Acceptance Testing) process will begin now that Apache NetBeans 
(incubating) 9.0 Beta has been released. Watch this space for upcoming 
announcements about NetCAT. When NetCAT completes, we will vote on the final 
release of Apache NetBeans (incubating) 9.0.
+Note: Apache NetBeans (incubating) 9.0 Beta is primarily focused on IP 
clearance. Its functionality has not been tested -- the NetCAT (NetBeans 
Community Acceptance Testing) process will begin now that Apache NetBeans 
(incubating) 9.0 Beta has been released. Watch this space for upcoming 
announcements about NetCAT. When NetCAT completes, we will vote on the final 
release of Apache NetBeans (incubating) 9.0.
 
 Details on Apache NetBeans (incubating) 9.0 Beta:
 
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/apache-netbeans-at-oracle-code.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/apache-netbeans-at-oracle-code.adoc
index b2a1f680a..3552d01ac 100644
--- 
a/netbeans.apache.org/src/content/blogs/entry/apache-netbeans-at-oracle-code.adoc
+++ 
b/netbeans.apache.org/src/content/blogs/entry/apache-netbeans-at-oracle-code.adoc
@@ -85,7 +85,7 @@ Speakers: Kenneth Fogel, Instructor, Concordia University
 +
 Title: Bridging Swing and JavaFX on an Enterprise Scale [DEV6080]
 +
-Speakers: Sven Reimers, Jos� Pereda
+Speakers: Sven Reimers, José Pereda
 
 * *Wednesday, Oct 24, 9:00 a.m. - 9:45 a.m. | Moscone West - Room 2010*
 +
@@ -97,7 +97,7 @@ Speakers: Martin Skarsaune
 +
 Title: Lambda Programming Laboratory - BYOL [HOL6006]
 +
-Speakers: Jeff Dinkins, Stuart Marks, Maurice Naftalin, Jos� Paumard
+Speakers: Jeff Dinkins, Stuart Marks, Maurice Naftalin, José Paumard
 
 * *Thursday, Oct 25, 09:00 AM - 11:00 AM | Moscone West - Overlook 2A (HOL)*
 +
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/introducing-the-apache-netbeans-blogs.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/introducing-the-apache-netbeans-blogs.adoc
new file mode 100644
index 000000000..509968121
--- /dev/null
+++ 
b/netbeans.apache.org/src/content/blogs/entry/introducing-the-apache-netbeans-blogs.adoc
@@ -0,0 +1,46 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= Introducing the Apache NetBeans Blog
+:author: Geertjan Wielenga
+:revdate: 2017-10-01
+:jbake-type: post
+:jbake-tags: blogentry
+:jbake-status: published
+:keywords: Apache NetBeans blog index
+:description: Apache NetBeans blog index
+:toc: left
+:toc-title:
+:syntax: true
+
+
+
+
+
+Here, at last, is a community space for everyone working on Apache NetBeans, 
currently incubating, to post blogs.
+
+I imagine this will be a place where we can announce new releases of Apache 
NetBeans, while it will also be a place for everyone to share their experiences 
and make all kinds of other announcements.
+
+//For example, did you know there's already an application created on top of 
Apache NetBeans? It is called YaMeter, read about it here.
+
+Happy blogging everyone, at the brand new Apache NetBeans (incubating) blog.
+
+
+
+
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-at-oracle-code-one.adoc 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-at-oracle-code-one.adoc
index 610551643..85cca567d 100644
--- 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-at-oracle-code-one.adoc
+++ 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-at-oracle-code-one.adoc
@@ -38,47 +38,69 @@ An Apache NetBeans schedule for those going to Oracle Code 
One 2019 next week!
 *Monday, September 16*
 
 * *Why You Should Be Coding with the NetBeans IDE* [BOF1321]
-    Mark Stephens, Developer, IDRsolutions
-    Ethan Price, Developer, IDRsolutions
-    02:30 PM - 03:15 PM | Moscone South - Room 305
++
+Mark Stephens, Developer, IDRsolutions
++
+Ethan Price, Developer, IDRsolutions
++
+02:30 PM - 03:15 PM | Moscone South - Room 305
 
 * *Java IDE Wars* [DEV1375]
-    Ken Fogel, Teacher, Dawson College
-    Scott Selikoff, Software Developer, Selikoff Solutions, LLC
-    Jeanne Boyarsky, Developer, CodeRanch
-    04:00 PM - 04:45 PM | Moscone South - Room 304
++
+Ken Fogel, Teacher, Dawson College
++
+Scott Selikoff, Software Developer, Selikoff Solutions, LLC
++
+Jeanne Boyarsky, Developer, CodeRanch
++
+04:00 PM - 04:45 PM | Moscone South - Room 304
 
 * *Hacking the NetBeans IDE* [BOF1338]
-    Mark Stephens, IDR Solutions
-    06:00 PM - 06:45 PM | Moscone South - Room 309
++
+Mark Stephens, IDR Solutions
++
+06:00 PM - 06:45 PM | Moscone South - Room 309
 
 * *Hacking the NetBeans Profiler* [BOF4170]
-    Ryan Cuprak, Formulation Applications R&D; Development Senior Manager, 
Dassault Systemes
-    06:00 PM - 06:45 PM | Moscone South - Room 305
++
+Ryan Cuprak, Formulation Applications R&D; Development Senior Manager, 
Dassault Systemes
++
+06:00 PM - 06:45 PM | Moscone South - Room 305
 
 *Tuesday, September 17*
 
 * *Getting Started with Deep Learning for Enterprise Java Developers* [DEV2126]
-    Zoran Sevarac, Associate Professor, University of Belgrade, Faculty of 
Organisational Sciences
-    Suyash Joshi, Developer Marketing Director, Oracle
-    12:30 PM - 01:15 PM | Moscone South - Room 308
++
+Zoran Sevarac, Associate Professor, University of Belgrade, Faculty of 
Organisational Sciences
++
+Suyash Joshi, Developer Marketing Director, Oracle
++
+12:30 PM - 01:15 PM | Moscone South - Room 308
 
 * *Testing on Oracle Autonomous Database with Homomorphic Encryption, Using 
NetBeans and Java - BYOL* [HOL3196]
-    Simon Bain, Founder & CTO, ShieldIO
-    12:30 PM - 02:30 PM | Moscone West - Room 3024C
++
+Simon Bain, Founder & CTO, ShieldIO
++
+12:30 PM - 02:30 PM | Moscone West - Room 3024C
 
 *Wednesday, September 18*
 
 * *Apache NetBeans: Its Status and Future* [DEV2506]
-    Geertjan Wielenga, Product Manager, Oracle
-    Mark Stephens, Developer, IDRsolutions
-    Ethan Price, Developer, IDRsolutions
-    06:00 PM - 06:45 PM | Moscone South - Room 206
++
+Geertjan Wielenga, Product Manager, Oracle
++
+Mark Stephens, Developer, IDRsolutions
++
+Ethan Price, Developer, IDRsolutions
++
+06:00 PM - 06:45 PM | Moscone South - Room 206
 
 *Thursday, September 19*
 
 * *Testing on Oracle Autonomous Database with Homomorphic Encryption, Using 
NetBeans and Java - BYOL* [HOL3196]
-    Simon Bain, Founder & CTO, ShieldIO
-    09:00 AM - 11:00 AM | Moscone West - Room 3024C
++
+Simon Bain, Founder & CTO, ShieldIO
++
+09:00 AM - 11:00 AM | Moscone West - Room 3024C
 
 * 19:00 Hang out in the Thirsty Bear in Howard Street
\ No newline at end of file
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-for-javaee-project-productivity.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-for-javaee-project-productivity.adoc
index 0221a6fe7..40317c4e6 100644
--- 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-for-javaee-project-productivity.adoc
+++ 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-for-javaee-project-productivity.adoc
@@ -31,11 +31,15 @@
 :imagesdir: https://netbeans.apache.org
 
 
-Last Saturday (June 30, 2018) I was invited to COFAN (Conf�rence au Faso sur 
le Num�rique) to present tips for building enterprise Java applications. COFAN 
is a conference divided into multiple sessions on a variety of technologies. It 
was started last year and the second tour has been taking place since May and 
it is sponsored by the government of Burkina Faso.
+Last Saturday (June 30, 2018) I was invited to COFAN (Conférence au Faso sur 
le Numérique) to present tips for building enterprise Java applications. 
+COFAN is a conference divided into multiple sessions on a variety of 
technologies. 
+It was started last year and the second tour has been taking place since May 
and it is sponsored by the government of Burkina Faso.
 
-I was given the opportunity to talk about enterprise Java in general and to 
show how NetBeans can be a great tool to develop strong and professional Java 
enterprise applications.
+I was given the opportunity to talk about enterprise Java in general and to 
show how NetBeans can be a great tool 
+to develop strong and professional Java enterprise applications.
 
-A room filled with an attentive audience was very enthusiastic. They were also 
satisfied by the answers to their questions, while some decided to continue 
using NetBeans, with others promising to start working with it for the first 
time!
+A room filled with an attentive audience was very enthusiastic. They were also 
satisfied by the answers to their questions,
+while some decided to continue using NetBeans, with others promising to start 
working with it for the first time!
 
 Pictures of the event are below:
 
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-devox.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-devox.adoc
new file mode 100644
index 000000000..3f2030de4
--- /dev/null
+++ 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-devox.adoc
@@ -0,0 +1,39 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= NetBeans Status Session at Devoxx 2017
+:author: Geertjan Wielenga
+:revdate: 2017-11-08
+:jbake-type: post
+:jbake-tags: blogentry
+:jbake-status: published
+:keywords: Apache NetBeans blog index
+:description: Apache NetBeans blog index
+:toc: left
+:toc-title:
+:syntax: true
+
+
+
+Watch this quick session, with a number of Apache NetBeans team members, to 
learn about the status of the process at Apache NetBeans (incubating):
+
+video::EkfX-W0tgNo[youtube]
+
+
+
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-javaone.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-javaone.adoc
new file mode 100644
index 000000000..feabcc474
--- /dev/null
+++ 
b/netbeans.apache.org/src/content/blogs/entry/netbeans-status-interview-at-javaone.adoc
@@ -0,0 +1,40 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= Audio of Virtual Apache NetBeans Meeting 1
+:author: Geertjan Wielenga
+:revdate: 2017-10-03
+:jbake-type: post
+:jbake-tags: blogentry
+:jbake-status: published
+:keywords: Apache NetBeans blog index
+:description: Apache NetBeans blog index
+:toc: left
+:toc-title:
+:syntax: true
+
+
+
+
+Watch this quick interview to learn about the status of the process at Apache 
NetBeans (incubating):
+
+video::o5qDm0yS8mc[youtube]
+
+
+
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/php-conditional-breakpoints-and-new.adoc
 
b/netbeans.apache.org/src/content/blogs/entry/php-conditional-breakpoints-and-new.adoc
index 3b7eccb37..445a0f205 100644
--- 
a/netbeans.apache.org/src/content/blogs/entry/php-conditional-breakpoints-and-new.adoc
+++ 
b/netbeans.apache.org/src/content/blogs/entry/php-conditional-breakpoints-and-new.adoc
@@ -29,6 +29,7 @@
 :toc-title:
 :syntax: true
 :experimental:
+:imagesdir: https://netbeans.apache.org
 
 
 Hi all. Today, we will show you some new features which will be available in 
the *next NetBeans version*, maybe
diff --git 
a/netbeans.apache.org/src/content/blogs/entry/the-case-of-the-different.adoc 
b/netbeans.apache.org/src/content/blogs/entry/the-case-of-the-different.adoc
new file mode 100644
index 000000000..04247b3b3
--- /dev/null
+++ b/netbeans.apache.org/src/content/blogs/entry/the-case-of-the-different.adoc
@@ -0,0 +1,72 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= The case of the different jsch 0.1.54 binaries
+:author: Emilian Bold
+:revdate: 2017-10-04
+:jbake-type: post
+:jbake-tags: blogentry
+:jbake-status: published
+:keywords: Apache NetBeans blog index
+:description: Apache NetBeans blog index
+:toc: left
+:toc-title:
+:syntax: true
+
+
+
+
+As part of the Apache NetBeans IP clearance we are combing through all the 
code and dependencies.
+
+One interesting thing we bumped into was that the jsch 0.1.54 binary JAR we 
are using has a different hash (and size) 
+than the binary JAR from Maven Central.
+
+The old hash is 0D7D8ABA0D11E8CD2F775F47CD3A6CFBF2837DA4, the new one is 
DA3584329A263616E277E15462B387ADDD1B208D.
+
+The binaries are 278,612 bytes vs 280,515 bytes in Maven Central.
+
+Our version is actually the same as the one found on 
link:http://www.jcraft.com/jsch/[http://www.jcraft.com/jsch/]
+
+Also, the Maven JAR is properly signed with the author's CA7FA1F0 key.
+
+This is where it becomes clear that 
link:https://reproducible-builds.org/[reproducible builds] are important. 
+You do not want to have to wonder why a binary differs, especially years later 
when you are doing a review. And this one is a library doing SSH!
+
+So, why the different binaries?
+
+It seems the original JAR was compiled on Aug 30, 2016 with Java 1.4 (major 
version 48) while the Maven Central JAR was compiled 
+Sep 3, 2016 with Java 5 (major version 49).
+
+The original JAR also concatenates strings using `StringBuffer` while the 
Maven Central JAR uses the newly introduced in 1.5 `StringBuilder`. 
+Which should also be a bit faster since it's not synchronized.
+
+Next, most of the cypher classes use some reflection via a `static 
java.lang.Class class$(java.lang.String)` method.
+
+// link to blog https://blogs.oracle.com/sundararajan/class-literals-in-jdk-15 
is not live
+
+What is this? It's just the way class literals worked in Java 1.4. //As 
explained here, 
+In Java 5 the `ldc_w` instruction was introduced to load a `Class` object.
+
+In 1.4 the class literal was helped by the compiler by actually introducing 
the helper `Class class$(java.lang.String className)` method
+and replacing the `Person.class` with a `class$("Person")` call.
+
+It conclusion, it seems that excluding the Java 1.4 to Java 5 compiler 
changes, the two JARs are identical. 
+With the Maven Central JAR even a bit better due to `StringBuilder` being used.
+
+There is no check so far that the sources do produce the specific JAR. This is 
an exercise left for the reader.
diff --git a/netbeans.apache.org/src/content/wiki/HowToConfigureXDebug.adoc 
b/netbeans.apache.org/src/content/wiki/HowToConfigureXDebug.adoc
new file mode 100644
index 000000000..ce9424a6e
--- /dev/null
+++ b/netbeans.apache.org/src/content/wiki/HowToConfigureXDebug.adoc
@@ -0,0 +1,708 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= HowToConfigureXDebug
+:jbake-type: wiki
+:jbake-tags: wiki, devfaq, needsreview
+:markup-in-source: verbatim,quotes,macros
+:jbake-status: published
+:syntax: true
+:description: Quick Links to Turorials and Docs
+:icons: font
+:source-highlighter: pygments
+:toc: left
+:toc-title:
+:experimental:
+:back: \
+
+== How to configure XDebug
+
+=== Overview
+
+This document describes the installation of xdebug. There are separate 
sections for Linux, Mac OS X and Windows users. However, the information in 
*How to on Linux* may be interesting for Windows users as well. Please send 
your comments to [email protected] if you have any comments or 
questions. 
+
+=== Other Useful Documents
+
+See installation, configuration instructions: 
+
+* link:debug-setup-flowchart.pdf[Flowchart showing basic XDebug installation 
and configuration procedure]
+* link:https://xdebug.org/find-binary.php[XDebug wizard] *'VERY USEFUL' "DON'T 
OVERLOOK A MUST USE"*
+* link:https://xdebug.org/docs/install[xdebug site]
+* xref:../kb/docs/php/index.adoc[PHP Learning Trail]
+// * link:http://devzone.zend.com/article/2803-Introducing-xdebug[Introduction 
to Xdebug by ZEND]
+* link:https://www.php.net/features.commandline[Command-line PHP interpreter] 
and how to xref:../kb/docs/php/project-setup.adoc#_script[specify it in 
Netbeans]
+* Various XDebug-related threads at the NetBeans 
link:http://web.archive.org/web/20170206180838/http://forums.netbeans.org/php-users.html[PHP
 Users Forum], especially 
link:http://web.archive.org/web/20170222194549/http://forums.netbeans.org/viewtopic.php?t=1513&sid=1bf924860f28bbffc0f55b92fca9395e[Won't
 Connect to XDebug] 
+
+=== General Information
+
+* link:https://www.php.net/manual/en/configuration.file.php[Edit PHP 
Configuration] - name of configuration file is *php.ini*
+* The location of php.ini differs between operating systems, Linux 
distributions, types of installation (from packages or sources), and/or 
Windows-based solution stacks (WAMP, XAMP)
+* Typically, *more than one php.ini* file exists. 
+
+*Important note for WAMP*: xdebug configuration (below) must be added in 
WAMP's *apache*-directory php.ini (e.g. 
C:\wamp\bin\apache{back}**Apache.x.y.z\bin**\php.ini), otherwise it won't be 
loaded by Apache. Thus configured, it will work in NetBeans, but if you 
experience "call to unidentified function" in the debug window, add the xdebug 
configuration to C:\wamp\bin{back}**php\php.a.b.c**\php.ini as well.
+
+* Xdebug configuration is either *inside php.ini or in another ini file often 
called xdebug.ini* - this ini file is then shared between both configurations 
(Script and Local Web Server)
+* *Xdebug is incompatible* with the *Zend Optimizer and Zend Studio Debugger 
extensions*. These extensions should be commented out. See 
link:http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/screancast_about_netbeans_php_ide#comment-1219391647000[user's
 comment]: 
+
+[source,ini]
+----
+[Zend]
+;zend_extension_ts = "C:\xampp\php\zendOptimizer\lib\ZendExtensionManager.dll"
+;zend_extension_manager.optimizer_ts = 
"C:\xampp\php\zendOptimizer\lib\Optimizer"
+;zend_optimizer.enable_loader = 0
+;zend_optimizer.optimization_level=15
+;zend_optimizer.license_path =; Local Variables:
+; tab-width: 4
+
+; Local Variables:
+; tab-width: 4
+; End:
+----
+
+* *NOTICE: From PHP 5.3 onwards, you need to use zend_extension and not 
zend_extension_ts*. 
+
+==== Tips from the NetBeans Forums
+
+A user provides the following additional tips:
+
+
+//article not available
+//. Read this great set of articles that explain xDebug in clear, coherent, 
plain English - Stefan Priedsch's //articles at [1] - particularly, parts 1 and 
4
+//+
+//There's some crucial subtle details and context you might not already 
understand. Also, it'll remind you why it's worth all this effort!
+//
+
+. Use link:https://xdebug.org/wizard[https://xdebug.org/wizard]
++
+This app is provided by the xdebug guys. You can copy and paste in your 
PHPinfo, and it gives you the correct version with step-by-step compilation 
instructions. Many xDebug problems seem to come from tiny mismatches between 
the exact PHP release you use, and the exact version of xDebug you use. If you 
simply downloaded the latest version xdebug, or if you got xdebug off a 
repository, this is probably part of your problem.
+. Get xdebug's debugclient working on localhost first, then add Netbeans.
++
+If Netbeans is failing to connect, chances are it's a problem with xDebug and 
nothing to do with Netbeans. First, try to achieve the simplest possible xDebug 
set up: use the bundled command line client "debugclient" instead of netbeans, 
on localhost, debugging simple php code (e.g. a phpinfo file), with any 
firewalls and other competing factors or config disabled or removed. When 
you've got this running, then your fight with Netbeans will be on solid ground, 
and will probably be surprisi [...]
++
+Instructions on installing Debugclient are cunningly hidden right at the 
bottom of link:https://xdebug.org/docs/install[https://xdebug.org/docs/install]
++
+As for actually using it, there's almost nothing I could find on xdebug's own 
site, but there's good tips on the really helpful page 
link:http://web.archive.org/web/20190818144610/http://www.thierryb.net/pdtwiki/index.php?title=Using_PDT_:_Installation_:_Installing_the_XDebug_Debugger[Installing
 the XDebug Debugger] - look under "Can I debug locally?" near the bottom. The 
important thing is, if debugclient hangs on "Waiting to connect", it hasn't 
necessarily failed, it could be working a [...]
++
+I personally went as far as setting up an Ubuntu Virtualbox on my Windows 
machine. This took all Windows-related complications out of the equation, and 
meant I could casually wipe the whole drive and start all over again when 
things got complicated. I'd recommend this as it gives you complete control and 
guarantees no conflicting config files. People have spent days, even more than 
a week or two fighting to get xdebug to work - spend time now to save time 
later!
++
+Here's a collection of tips I picked up from 100s of forum posts and from 
experience:-
++
+* Always check there aren't any other php.ini files you haven't configured (on 
*nix, "find / -name php.ini"). E.g. there are often different php.inis for 
command line and for web server PHP. 
+* (on *nix) Use the command "netstat -a | grep tcp" when you need to see 
what's going on with port 9000 
+* Generally, 'fail to bind' type errors are a sign that something is using the 
port in question. If netstat says port 9000 is busy listening, this is what 
it's supposed to do. It might be waiting for a browser to start a session - try 
it! I think 
link:http://web.archive.org/web/20190818144610/http://www.thierryb.net/pdtwiki/index.php?title=Using_PDT_:_Installation_:_Installing_the_XDebug_Debugger[http://www.thierryb.net/pdtwiki/index.php?title=Using_PDT_:_Installation_:_Installing_the_XD
 [...]
+* Only use those socket-based php test files like 
link:http://web.archive.org/web/20160317000642/https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation[https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation
 sparingly]. When they hang, they can tie up the port and complicate the 
question. Reboot and restart Apache often. Also, don't forget to try them 
through a browser as well as the command line. If this gives you a fancy error 
screen with backtrac [...]
+* Don't obsess over every php.ini option. Most of the defaults are fine. The 
really important ones are the host, and making sure that whatever port you set 
in php.ini is matched by your client. 
+* Occasionally, on some systems, localhost isn't localhost. If this might 
affect you (it probably doesn't), put 127.0.0.1 instead. 
+* Look at your other debugging-related php.ini settings. Turn them on. This 
isn't essential, but it helps a lot. I also uncommented the report_zend_debug = 
0 line to make sure that this is off and not competing. I don't know if this 
helped, but xdebug now works, so it didn't hurt. 
+* In your phpinfo, check that "Debug build" IS "No". If it's "yes", this could 
be a big problem. Research it. I believe you might need to reinstall PHP, to 
make sure that it is "no". 
+* Make sure there's nothing Zend other than xDebug in either phpinfo, php -m 
on the command line (if you've got command line php) or php.ini. If there's any 
other Zend modules in php.ini, comment them out. 
+* If you are mapping server paths to project paths, you must map the full 
project folders to each other, not the parent folders. For example, the mapping 
++
+[source,console]
+----
+D:\apps\apache\2.2\htdocs --> D:\Users\Setebos\Documents\code\php
+----
++
+will not work. The mapping
++
+[source,console]
+----
+D:\apps\apache\2.2\htdocs\tutorial --> 
D:\Users\Setebos\Documents\code\php\tutorial
+----
+will work.
+. XDebug Port Stopped by SELinux
++
+On Linux systems, if your SELinux policies are enforced, NetBeans will not be 
able to connect. The reason is that SELinux stops apache from any other port 
other than the known 80. You can tackle the problem by passing the xdebug port 
(9000) for apache in the SELinux, using the following command:
++
+[source,console]
+----
+semanage port -a -t http_port_t -p tcp 9000
+----
++
+Optionally, you can disable System Default Enforcing of SELinux.
+
+=== How to on Linux
+
+* e.g. Ubuntu files layout (xdebug configuration is in both php.ini files): 
++
+[source,console]
+----
+/etc/php5/
+|-- apache2
+|   |-- conf.d -> ../conf.d
+|   |-- php.ini
+|   `-- php.ini.ucf-dist
+|-- cli
+|   |-- conf.d -> ../conf.d
+|   |-- php.ini
+|   `-- php.ini.ucf-dist
+`-- conf.d
+    |-- mysql.ini
+    |-- mysqli.ini
+----
+* alternative Ubuntu files layout (xdebug configuration is in xdebug.ini 
shared between both configurations. If this is your case then you better add 
related directives to xdebug.ini. See article 
link:http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/ubuntu_php_netbeans_part_iii[Xdebug
 On Ubuntu]): 
++
+[source,console]
+----
+/etc/php5/
+|-- apache2
+|   |-- conf.d -> ../conf.d
+|   |-- php.ini
+|   `-- php.ini.ucf-dist
+|-- cli
+|   |-- conf.d -> ../conf.d
+|   |-- php.ini
+|   `-- php.ini.ucf-dist
+`-- conf.d
+    |-- mysql.ini
+    |-- mysqli.ini
+    |-- xdebug.ini
+----
+* php.ini (or xdebug.ini) should contain at least following settings (see 
link:https://xdebug.org/docs/all_settings[all settings]). 
++
+[source,console]
+----
+zend_extension=/path/to/xdebug.so
+xdebug.remote_enable=1
+xdebug.remote_handler=dbgp
+xdebug.remote_mode=req
+xdebug.remote_host=127.0.0.1
+xdebug.remote_port=9000
+----
+*  *NOTICE: From PHP 5.3 onwards, you need to use zend_extension and not 
zend_extension_ts.*
+* Nginx users: Note that restarting nginx will not reload php.ini! You will 
need to restart PHP, or your server. 
+* /path/to/xdebug.so is just example. *Check* that the *file really exists* on 
given path.
+* For Script verify that Xdebug appears in the Zend module lists after: *php 
-m*
+* For Local Web Server verify that Xdebug appears in the *Zend modules* (not 
PHP Modules) after: : php -mf path_to_ini_file/php.ini 
++
+[source,console]
+----
+[PHPModules]
+bcmath
+bz2
+calendar
+...
+
+[ZendModules]
+Xdebug
+----
+* For Local Web Server you can alternatively *create a phpinfo.php* file 
containing the line '<?php phpinfo(); ?>', ls
+run and watch whether information about Xdebug will be displayed 
+
+image::xdebug_HowToConfigureXDebug.png[]
+
+* Optionally enable Xdebug logging by adding into php.ini also: 
xdebug.remote_log=/log_path/xdebug.log
+* Optionally enable NetBeans PHP debugger logging by starting NetBeans with 
-J-Dorg.netbeans.modules.php.dbgp.level=400 or by editing netbeans.conf 
++
+[source,console]
+----
+netbeans/etc/
+|-- netbeans.clusters
+
+|-- netbeans.conf
+`-- netbeans.import
+----
+* whenever php.ini is modified don't forget *restart web server* (not needed 
for Script)
+* see 
link:http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation[Howto
 check xdebug installation], 
link:http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/ubuntu_php_netbeans_part_iii[XDebug
 on Ubuntu] 
+
+
+=== How to on MAC OS X Snow Leopard
+
+A google search shows many blogs that state that installing xdebug on MAC is 
tedious and problematic. Their usual recommendation is to download some 
precompiled version to be safe. Well, this is probably the easiest way to 
install XDebug but if it doesn't work then you are in trouble. Compiling your 
own version of xdebug is actually easier than you would think and you don't 
even need to use the command line so much.
+
+==== Built in php and apache
+
+I started with a fresh Snow Leopard installation that comes with prebuilt 
apache and php.
+
+===== Get Xdebug Sources and Install
+
+* Download your xdebug sources from the 
link:https://xdebug.org/download[xdebug download page]. Use the 
link:https://xdebug.org/wizard[Tailored Installation Instructions] to download 
the correct version. After you press analyze my phpinfo() output you should get 
a recommended version to download with all necessary instructions for 
installation. 
+* If there is a php.ini file in your /etc/ folder, add the following to the 
end. If there is not a php.ini file then simply create the php.ini file. There 
may be a php.ini.default file. Don't update this file but rather create a new 
php.ini and add only xdebug directives into it. *Change path to xdebug.so to 
your path, of course*.
++ 
+[source,ini]
+----
+zend_extension = /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
+xdebug.remote_enable=on
+xdebug.remote_log="/var/log/xdebug.log"
+xdebug.remote_host=localhost
+xdebug.remote_handler=dbgp
+xdebug.remote_port=9000
+----
+* Above is my entire php.ini file. All other directives are saved in 
php.ini.default.
+* *Note*: xdebug.remote_log is optional. 
+* *Note*: (probably works with OS X versions before 10.8 Mountain Lion) If you 
are using PHP from the MAMP package, your php.ini file is in 
/Applications/MAMP/conf/php5/php.ini by default and the default directory in 
which to install xdebug.so is 
/Applications/MAMP/bin/php5/lib/php/extensions/no-debug-non-zts-20060613/. 
+* *IMPORTANT for Mac OS X 10.8 (Mountain Lion)*: Contrary to the note above, 
you have to make the changes in 
/Applications/MAMP/bin/php/php5.x.y/conf/php.ini, where php5.x.y is the active 
PHP version chosen in MAMP 
+
+===== Verify installation
+
+* Check the installation either in a browser or in the command line, depending 
on whether you want to debug a web page or a cli script. The output is the same 
as on linux or on WIN.
+* For web page run phpinfo() again. 
+
+image::xdebug_HowToConfigureXDebug.png[]
+
+* For command line run the following. You will get longer output but this is 
the most important part of the output. 
++
+[source,console]
+----
+$php -i | grep xdebug
+
+xdebug.remote_enable => On => On
+xdebug.remote_handler => dbgp => dbgp
+xdebug.remote_host => localhost => localhost
+xdebug.remote_log => /var/log/xdebug.log => /var/log/xdebug.log
+xdebug.remote_mode => req => req
+xdebug.remote_port => 9000 => 9000
+----
+* and that's it! 
+
+=== Notes on Windows Configuration
+
+* php.ini location hint for Local Web Server for XAMP on Windows: 
c:\xamp\apache\bin\php.ini
+* php.ini location hints for Script(CGI/CLI) for XAMP on Windows: 
c:\xampp\php\php.ini
+* for *Windows* use *zend_extension_ts* instead of zend_extension (e.g. 
zend_extension_ts=c:\path\to\php_xdebug.dll). Again c:\path\to\php_xdebug.dll 
must exist.
+* *NOTICE: From PHP 5.3 onwards, you need to use zend_extension and not 
zend_extension_ts*.
+* For more information, please see 
xref:../kb/docs/php/configure-php-environment-windows.adoc[Configuring PHP 
Development Environment in Windows]. 
+
+=== How to configure xdebug with WAMP
+
+* installing xdebug on WAMP is a bit diferrent and requires another steps to 
sucesfully load module. I focus on the easiest use case, installation using 
precompiled .dll. 
+
+==== Prerequisities
+
+* I assume these prerequisities: 
+** you have latest version of WAMP installed. That's WAMP 2.0 when writing 
this tutorial (Apr 15, 2009). These includes: 
+*** Apache 2.2.11
+*** PHP 5.2.9-1
+*** I don't care about MySQL at this moment .., 
+
+==== Steps
+
+* if you didn't customize your installation paths then you should find php in 
<wamp_folder>\bin 
++
+[source,console]
+-----
+C:.
+|-- apache
+|   <some folders>
+|-- mysql
+|   <some folders>
+`-- php
+    |-- php5.2.9-1
+        |-- dev
+        |-- ext
+        |-- extras
+        |   |-- mibs
+        |   |-- openssl
+        |   |-- pdf-related
+        `-- PEAR
+-----
+* folder ext is used for extension and we used it to copy xdebug's dll there. 
However, you can use whatever folder you want.
+* download xdebug from 
link:https://xdebug.org/download[https://xdebug.org/download].
+*Carefully choose version you download!* There is a description you should 
read on download page! I downloaded php_xdebug-2.0.4-5.2.8.dll for WAMP2 with 
prerequisities above. Consult our FAQ at the end of this page if you need more 
help on choosing a version.
+* open your php.ini that is easily accesible from tray. Wamp tray icon -> PHP 
-> php.ini
+* add following lines to your php.ini. Use full path! (change your .dll name 
to match your version, of course) 
++
+[source,ini]
+----
+zend_extension_ts="C:/wamp/bin/php/php5.2.9-1/ext/php_xdebug-2.0.4-5.2.8.dll"
+xdebug.remote_enable=on
+xdebug.remote_handler=dbgp
+xdebug.remote_host=localhost
+xdebug.remote_port=9000
+----
+* *NOTICE: From PHP 5.3 onwards, you need to use zend_extension and not 
zend_extension_ts*.
+* note that you always use zend_extension_ts unless you intentionally 
installed non thread safe apache version
+* restart WAMP services (restart Apache is enough)
+* open localhost (or WAMP server default page) and check if xdebug is between 
*Loaded Extensions*
+* click on phpinfo() on default WAMP page or create file containing <? 
phpinfo() ?>. You should see the same as for Linux tutorial above: 
+
+image::xdebug_HowToConfigureXDebug.png[]
+
+* You can check your configuration using simple script written by Radek Matous 
and posted on 
link:http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/howto_check_xdebug_installation[blog.oracle.com].
 If you are using WAMP then you don't have php on path, most probably. All you 
have to do is to copy this code to php file and then call it from browser with 
$_GET variable in url ?XDEBUG_SESSION_START=mysession. Let's say your file i 
called dbgtest.php and it [...]
+* If xdebug is properly installed then script started in step 1. should print 
message like "connection established: Resource id #5". If no message is printed 
and the script is still running, then xdebug isn't installed properly or uses 
different port or whatever else. So, kill the running process and investigate 
where the problem is, but this is the other story. 
++
+[source,php]
+----
+<?php
+$address = '127.0.0.1';
+$port = 9000;
+$sock = socket_create(AF_INET, SOCK_STREAM, 0);
+socket_bind($sock, $address, $port) or die('Unable to bind');
+socket_listen($sock);
+$client = socket_accept($sock);
+echo "connection established: $client";
+socket_close($client);
+socket_close($sock);
+?>
+----
+
+==== Troubleshooting
+
+* if something goes wrong then check your *PHP Error Log* that you can find 
after invoking WAMP context menu from system tray 
+** e,g,: WAMP icon -> PHP -> Error Log 
+* Probably typo or file was not found if you see this: 
++
+[source,console]
+----
+PHP Warning:  PHP Startup: Unable to load dynamic library 
'c:/wamp/bin/php/php5.2.9-1/ext/php_xdebug-2.0.4-5.2.8.dl' 
+- The specified module could not be found.
+ in Unknown on line 0
+----
+* You downloaded wrong version of php.ini if you see following: 
++
+[source,console]
+----
+PHP Warning:  PHP Startup: Unable to load dynamic library 
'c:/wamp/bin/php/php5.2.9-1/ext/php_xdebug-2.0.4-5.3.0-vc9.dll' - 
+The application has failed to start because its side-by-side configuration is 
incorrect. 
+Please see the application event log for more detail. 
+in Unknown on line 0
+----
+* Do NOT use XAMPP 1.7.0. If you set up XDebug as described here, the Apache 
server crashes when you run or debug a file or project. The workaround prevents 
the IDE from stopping at breakpoints. XAMPP 1.7.1 is fine, with XDebug 2.0.4 VC 
5.2 thread-safe. 
+* If you are trying to debug a Zend Framework project, make sure you set the 
Run Configuration - you can do this by selecting the "properties" of the 
project. 
+* If you are having problems with "Register Provider" then try updating to the 
latest Zend Framework. Latest known issues are regarded to version 1.10. You 
can either just download and unzip over the top of the old framework, or if it 
is in XAMP you can use pear to update. To update in PEAR use the commands: pear 
channel-discover pear.zfcampus.org, pear install zfcampus/zf. For windows 
users: make sure you start the command line instance with administrator 
priviledges and you starting di [...]
+* try to check *Apache Error Log* as well. 
+
+==== Enable Xdebug logging
+
+by adding into php.ini: xdebug.remote_log=/log_path/xdebug.log (see 
link:https://xdebug.org/docs/all_settings[https://xdebug.org/docs/all_settings])
 the content of log is in /log_path/xdebug.log (this path is just an example, 
for Windows something like: C:\... && xdebug must be writable )
+
+==== Enable NetBeans PHP debugger logging
+
+helpful is to turn on the debugger-related logging and attach the log into 
Issuezilla as well.
+See following simple steps:
+
+. Running NetBeans with logging turned on. You can do this by: 
++
+[source,console]
+----
+either adding the text:-J-Dorg.netbeans.modules.php.dbgp.level=400 to your 
$NB_BIN/etc/netbeans.conf, property netbeans_default_options
+ 
+or running NetBeans directly with those parameters, like: $NB_BIN/bin/netbeans 
-J-Dorg.netbeans.modules.php.dbgp.level=400 
+----
+. When NetBeans starts up, reproduce the bug, so it is logged into the log 
files.
+. Then file a new issue (click this link) and attach (or just send me 
directly): 
++
+[source,console]
+----
+
+the content of IDE log file Menu -> View -> IDE Log File (or directly 
$YOUR_NB_USER_DIR/var/log/messages.log)
+   
+the content of the Output Window 
+----
+. Attach (or just send me directly) both log files xdebug.log and messages.log 
+
+=== Remote Debuging
+
+* For Remote Web Server configuration Xdebug must be properly configured on 
remote server (not on local one) 
+** you need to have correctly configured property xdebug_remote.host on remote 
machine. The IP address of local machine has to be defined in this property. 
For example, you want to debug your source code on remote machine 192.168.0.1 
using Netbeans installed on 192.168.0.2. You need to change xdebug.remote_host 
on 192.168.0.1 to xdebug.remote_host=192.168.0.2. If doesn't work verify you 
have port configured in xdebug.remote_port open on both machines. 
+* sometimes, Path Mapping must be used 
+// 
http://web.archive.org/web/20190818144610/https://blogs.oracle.com/netbeansphp/entry/path_mapping_in_php_debugger
+
+=== Using xdebug_file_link_format with NetBeans
+
+In php.ini, the xdebug option xdebug.file_link_format opens the given file 
path in your editor of choice if it has a custom URL scheme. You can use this 
option with NetBeans but you have to customize your environment. A discussion 
of ways and means of using xdebug_file_link_format with NetBeans is available 
on 
link:http://web.archive.org/web/20170222200204/http://forums.netbeans.org/topic20597.html[The
 PHP Users Forum].
+
+=== Where to ask?
+
+* xref:../community/mailing-lists.adoc[Apache NetBeans Mailing lists]
+
+=== Other useful resources:
+
+link:http://web.archive.org/web/20201031100315/https://xdebug.org/archives/xdebug-general/0163.html[How
 to configure xdebug to work only on one virtual server ?] - an online article 
on how to configure xdebug
+
+// not found Tutorial on how to configure Xdebug to work with phpDesigner 2008 
- has screen shots.
+
+
+=== FAQ
+
+. what version of Xdebug should I download? 
++
+*First, you can try the app that XDebug developers provide for determining the 
version of XDebug to download! It's located at 
link:https://xdebug.org/wizard[https://xdebug.org/wizard].*
+*Paste the full output of* phpinfo() (either a copy & paste of the HTML 
version or php -i output) into the form and submit it. The app returns tailored 
download and installation instructions. Do not paste the raw HTML (from 
view-source) into the form.
++
+If this form does not work for you and you need to find the XDebug version 
manually, Xdebug has a simple rule for choosing a version of xdebug extension 
youneed to download: *"The Windows binaries generally work for every mini 
release for the mentioned PHP version, althoughthe extension is built against 
the most current PHP version at that time. The VCx marker tells with which 
compiler the extension was built, and Non-thread-safe whether ZTS was disabled. 
Those qualifiers need to match t [...]
++
+You need to get answers on few simple questions, firstly 1. whats your version 
of php? there are more ways to find this out either
++
+[source,console]
+----
+$ php -v 
+PHP 5.2.6-3ubuntu4.1 with Suhosin-Patch 0.9.6.2 (cli) (built: Apr 23 2009 
14:37:14) 
+Copyright (c) 1997-2008 The PHP Group
+Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
+    with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans
+----
+or create a file
++
+[source,php]
+----
+<?php
+phpinfo(); 
+?>
+---- 
++
+you should get output like below after running it in browser
++
+image::phpinfo_phpversion_HowToConfigureXDebug.png[]
++
+Clearly my version of php is 5.2.6-3
+. Do I need Non Thread Safe or Thread Safe version? 
+non-threaded use of PHP" for example the CLI, CGI or Apache 1.3 module 
threaded usage of PHP, for example the Apache 2 work MPM or the the ISAPI module
++
+either run on Linux
++
+[source,console]
+----
+$ apache2 -V
+Server version: Apache/2.2.11 (Ubuntu)
+Server built:   Jun 11 2009 03:24:38
+Server's Module Magic Number: 20051115:21
+Server loaded:  APR 1.2.12, APR-Util 1.2.12
+Compiled using: APR 1.2.12, APR-Util 1.2.12
+Architecture:   64-bit
+==Server MPM:   Prefork!!!==
+==threaded:     no!!!==
+==forked:     yes (variable process count)!!!==
+Server compiled with....
+ -D APACHE_MPM_DIR="server/mpm/prefork"
+ -D APR_HAS_SENDFILE
+ -D APR_HAS_MMAP
+ -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
+ -D APR_USE_SYSVSEM_SERIALIZE
+ -D APR_USE_PTHREAD_SERIALIZE
+ -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
+ -D APR_HAS_OTHER_CHILD
+ -D AP_HAVE_RELIABLE_PIPED_LOGS
+ -D DYNAMIC_MODULE_LIMIT=128
+ -D HTTPD_ROOT=""
+ -D SUEXEC_BIN="/usr/lib/apache2/suexec"
+ -D DEFAULT_PIDLOG="/var/run/apache2.pid"
+ -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
+ -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
+ -D DEFAULT_ERRORLOG="logs/error_log"
+ -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
+ -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"
+----
++
+or on Windows
++
+[source,console]
+----
+C:\wamp\bin\apache\Apache2.2.11\bin>httpd
+Server version: Apache/2.2.11 (Win32)
+Server built:   Dec 10 2008 00:10:06
+Server's Module Magic Number: 20051115:21
+Server loaded:  APR 1.3.3, APR-Util 1.3.4
+Compiled using: APR 1.3.3, APR-Util 1.3.4
+Architecture:   32-bit
+==Server MPM:     WinNT!!!==
+==threaded:     yes (fixed thread count)!!!==
+==forked:     no !!!==
+Server compiled with....
+ -D APACHE_MPM_DIR="server/mpm/winnt"
+ -D APR_HAS_SENDFILE
+ -D APR_HAS_MMAP
+ -D APR_HAS_OTHER_CHILD
+ -D AP_HAVE_RELIABLE_PIPED_LOGS
+ -D DYNAMIC_MODULE_LIMIT=128
+ -D HTTPD_ROOT="/apache"
+ -D SUEXEC_BIN="/apache/bin/suexec"
+ -D DEFAULT_SCOREBOARD="logs/apache_runti
+ -D DEFAULT_ERRORLOG="logs/error.log"
+ -D AP_TYPES_CONFIG_FILE="conf/mime.types
+ -D SERVER_CONFIG_FILE="conf/httpd.conf"
+----
++
+the other option is to have a look on phpinfo on
++
+image::phpinfo_thread_safety_HowToConfigureXDebug.png[]
++
+or you can use command line Linux:
++
+[source,console]
+----
+$ php -i | grep "Thread Safety" 
+Thread Safety => disabled
+----
++
+Windows:
++
+[source,console]
+----
+C:\wamp\bin\php\php5.2.9-2>php.exe -i -w
+phpinfo()
+PHP Version => 5.2.9-2
+
+System => Windows NT FELIPEE-VISTA 6.0 build 6001
+Build Date => Apr  9 2009 08:22:37
+Configure Command => cscript /nologo configure.js  "--enable-snapshot-build" 
"--enable-debug-pack" "--with-snapshot-template=d:\php-sdk\snap_5_2
+vc6\x86\template" "--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build" 
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared" "--with
+oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"
+Server API => Command Line Interface
+Virtual Directory Support => enabled
+Configuration File (php.ini) Path => C:\Windows
+Loaded Configuration File => C:\wamp\bin\php\php5.2.9-2\php.ini
+Scan this dir for additional .ini files => (none)
+additional .ini files parsed => (none)
+PHP API => 20041225
+PHP Extension => 20060613
+Zend Extension => 220060519
+Debug Build => no
+Thread Safety => enabled
+Zend Memory Manager => enabled
+IPv6 Support => enabled
+Registered PHP Streams => php, file, data, http, ftp, compress.zlib
+Registered Stream Socket Transports => tcp, udp
+Registered Stream Filters => convert.iconv.*, string.rot13, string.toupper, 
string.tolower, string.strip_tags, convert.*, consumed, zlib.*
+----
++
+My *Thread Safety* is apparently disabled so I don't need thread safe version. 
*If you use Windows you most probably need thread safe version*.
++
+And that's it! Go to link:https://xdebug.org/download[Xdebug download page] 
and download appropriate file. I need veersion marked as 5.2. and NonThreadSafe.
+
+== How to build Xdebug (useful for php5.3)
+
+=== Ubuntu
+
+If you build your php5.3 from sources then the best way how to get stable 
xdebug to your Ubuntu is to build it. Well, building from sources can be 
tedious but building xdebug is pretty easy process. So, let's get started. I am 
using Karmic Koala release of Ubuntu.
+
+This process is well described on 
link:https://xdebug.org/docs/install[https://xdebug.org/docs/install] as well.
+
+==== Get your xdebug sources
+
+Download sources from link:https://xdebug.org/download[Xdebug download page]. 
Xdebug 2.1.beta2 (or beta3 when you checkout sources) is current release that 
correctly works with php5.3.x (at the time being).
+[source,console]
+----
+$ wget http://xdebug.org/files/xdebug-2.1.0beta2.tgz
+
+or 
+
+svn co svn://svn.xdebug.org/svn/xdebug/xdebug/trunk xdebug
+----
+
+==== Extract Xdebug sources
+
+if you downloaded .tgz then extract somewhere
+
+[source,console]
+----
+$ tar -xzf xdebug-2.1.0beta2.tgz 
+$ cd xdebug-2.1.0beta2
+----
+
+==== Configure
+
+Run
+[source,console]
+----
+$ phpize
+Configuring for:
+PHP Api Version:         20090626
+Zend Module Api No:      20090626
+Zend Extension Api No:   220090626
+----
+
+then run xdebug configure script
+
+[source,console]
+----
+./configure --enable-xdebug
+---- 
+
+==== Make
+
+[source,console]
+----
+$ make 
+
+it should finish with: 
+Build complete.
+Don't forget to run 'make test'.
+----
+
+==== Copy
+
+[source,console]
+----
+$ sudo cp modules/xdebug.so /<somewhere>
+----
+
+I used /etc/php5/xdebug/ as copy destination.
+
+==== Set up your environment
+
+configure php.ini
+
+[source,console]
+----
+$ sudo gedit /etc/php5/apache/php.ini
+---- 
+and add xdebug.so path to the end of file.
+
+[source,console]
+----
+zend_extension="/etc/php5/xdebug/xdebug.so"
+xdebug.remote_enable=on
+xdebug.remote_handler=dbgp
+xdebug.remote_host=localhost
+xdebug.remote_port=9000
+----
+
+restart apache
+
+[source,console]
+----
+$ sudo /etc/init.d/apache2 restart 
+----
+
+and have a look if phpinfo() output contains xdebug module.
+
+=== Troubleshooting
+
+Please, refer to link:https://xdebug.org/[https://xdebug.org] with xdebug 
installation, build process. You may want to see "installation how to" on 
link:https://xdebug.org/docs/install[https://xdebug.org/docs/install] in 
particular.
+
+==== Meet php version requirements
+
+As written on xdebug web page, if configure script fails with something like:
+
+[source,console]
+----
+../configure: line 1960: syntax error near unexpected token
+`PHP_NEW_EXTENSION(xdebug,'
+../configure: line 1960: `  PHP_NEW_EXTENSION(xdebug, xdebug.c
+xdebug_code_coverage.c xdebug_com.c xdebug_handler_gdb.c
+xdebug_handler_php3.c xdebug_handlers.c xdebug_llist.c xdebug_hash.c
+xdebug_profiler.c xdebug_superglobals.c xdebug_var.c usefulstuff.c,
+$ext_shared)'
+----
+
+then it means that you do not meet the PHP 4.3.x version requirement for 
Xdebug.
+
+==== Upgrade your autotools
+
+If you get:
+
+[source,console]
+----
+configure: line 1145: PHP_INIT_BUILD_SYSTEM: command not found
+configure: line 1151: syntax error near unexpected token `config.nice'
+configure: line 1151: `PHP_CONFIG_NICE(config.nice)'
+----
+
+You will need to upgrade your autotools (autoconf, automake and libtool) or 
install the known working versions: autoconf-2.13, automake-1.5 and 
libtool-1.4.3.
diff --git a/netbeans.apache.org/src/content/wiki/JavacDiff.adoc 
b/netbeans.apache.org/src/content/wiki/JavacDiff.adoc
new file mode 100644
index 000000000..4a542338b
--- /dev/null
+++ b/netbeans.apache.org/src/content/wiki/JavacDiff.adoc
@@ -0,0 +1,123 @@
+// 
+//     Licensed to the Apache Software Foundation (ASF) under one
+//     or more contributor license agreements.  See the NOTICE file
+//     distributed with this work for additional information
+//     regarding copyright ownership.  The ASF licenses this file
+//     to you under the Apache License, Version 2.0 (the
+//     "License"); you may not use this file except in compliance
+//     with the License.  You may obtain a copy of the License at
+// 
+//       http://www.apache.org/licenses/LICENSE-2.0
+// 
+//     Unless required by applicable law or agreed to in writing,
+//     software distributed under the License is distributed on an
+//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+//     KIND, either express or implied.  See the License for the
+//     specific language governing permissions and limitations
+//     under the License.
+//
+
+= JavacDiff
+:jbake-type: wiki
+:jbake-tags: wiki, devfaq, needsreview
+:markup-in-source: verbatim,quotes,macros
+:jbake-status: published
+:syntax: true
+:description: Quick Links to Turorials and Docs
+:icons: font
+:source-highlighter: pygments
+:toc: left
+:toc-title:
+:experimental:
+
+// used in blog entry
+
+
+== Recompleting Symbols from Sources
+
+Consider the following usecase: let there be two classes, A and B available 
both in source code and (up-to-date) class files. 
+These classes are interdependent (each refers to the other). 
+Let there be a refactoring, that needs to work over both these files. 
+The refactoring needs Trees (to access method bodies, to get offsets, etc), 
and these trees need to be attributed.
+
+There are the following ways for the refactoring to work:
+
+* parse the source codes in two instances of javac (each time completing the 
other one from the class files). This does not require much memory (only needs 
memory to parse one file), but is quite slow.
+* create one instance of javac and parse both files in that instance - fast, 
but requires a memory to parse both/all the files, which is not reasonable in 
the IDE.
+* create an instance of javac, parse A from sources, complete B from the 
classfile. After processing of file A is done, check the available memory and 
either parse the source code for B in the same instance of javac (if there is 
enough memory), or discard the old javac and create a new one for B. This 
allows to use the available memory to speed up the refactoring, but allows to 
perform it (slowly) in memory required to process one file. Unfortunately, the 
standard javac does not allow to [...]
+
+Recompleting of Symbols is also used:
+
+* when an API client asks for Tree for Symbol that was loaded from classfiles
+* when Symbol originates from classfile without parameter names (debugging 
information), and parameter names are required. Source is parsed to fill in the 
parameter names. 
+
+The ability to recomplete a Symbol from source file is one of the most 
important part of the NetBeans fork/patch.
+
+== Stable annonymous innerclass numbers
+
+When a Scope is created, the corresponding Tree is duplicated and attributed. 
This may lead into incorrect Symbols created for anonymous innerclasses. 
+It is necessary to ensure that the anonymous innerclass numbers will match the 
numbers that would be produced by a batch compiler. 
+This needs to be ensured even in case when the Scope is created before the 
tree is attributed.
+
+
+== Error Recovery
+
+While editing, the code in the editor contains compilation errors almost all 
the time. It is therefore unacceptable to loose e.g. code completion only 
because of a missing semicolon, or because of an (unrelated) unresolvable 
symbol.
+
+The list of current changes includes (not an exhaustive list):
+
+* JavacParser:
+** a variable declaration tree is produced even for cases where variable 
declaration is not allowed, e.g. in then/else section of if. The tree is 
wrapped in an erroneous tree and an error is reported. Trees produced before 
this change were too confusing for some hints (NB bug #192561). Relates to 
parseStatement and parseBlockStatement(s).
+** parseCompilationUnit is modified to handle multiple package clauses 
+* Attr:
+** in "return <expr>" <expr> is always attributed, even for initializers and 
methods with return type void
+** the last-resort symbol filler PostAttrAnalyzer is modified to dive into 
erroneous trees (NB bug #152334) 
+* Annotate:
+** modified to always attribute the annotation's attribute's values, even if 
the annotation itself is unresolvable (i.e. "@Undefined(@Another)" will 
attribute also @Another). 
+
+== Cancellability
+
+NetBeans need to be able to stop javac processing even inside one phase 
(parse/member enter/attribute). 
+This is used e.g. when the user types into the editor, and the current 
instance of javac is already processing an obsolette source code. 
+Then, there is no point in wasting time and memory in continuing the 
processing of the file.
+
+== Inferring Binary Names
+
+Consider file A.java, containing classes B and C, and file D.java, referencing 
B and C. If file D.java is being parsed (and class file for B and C do not 
exist yet), the javac is currently unable to locate file A.java. Yet, the IDE 
may have the information about the content of the A.java file. So, the problem 
is how to pass this information into the javac. ClassNamesForFileOraculum is 
currently used for this.
+
+== Support for Reparsing Method Bodies
+
+If the user changes are contained only inside one method body, it is desirable 
to reparse only the body of the one method. 
+This leads into faster reparse times and less garbage on the heap. The 
NetBeans' fork/patch contains support for reparsing methods bodies.
+
+== Repair
+
+In the NetBeans' fork/patch, there is a new phase, Repair, running after Flow. 
For source code with compilation errors, this phase converts the "uncompilable" 
trees into "compilable" trees.
+
+New attributes are added to the classfiles to keep:
+
+* error types (stripped from the trees during repair to obtain valid trees)
+* parameters names, without depending on debug information
+* annotations with RetentionPolicy.SOURCE 
+
+== Annotation Processing
+
+In vanilla javac, new Symbols are created for classes/methods/fields in the 
sources for each annotation processing round. This is rewritten in the 
NetBeans' fork/patch to use the symbol recompleting. Symbols, once created, are 
used in all rounds on annotation processing and also for the final compilation. 
Annotation processing is also supported when completing symbols from sources. 
Exceptions thrown by annotation processors are logged, but do not stop the 
compilation.
+
+== Ide Mode
+
+A special option, "ideMode", has been introduced by the NetBean's fork/patch 
to improve javac behavior in the following cases:
+
+* when there is no java.lang package (i.e. no platform), vanilla javac stops 
with an error. In IDE mode, the compiler handles the situation more gracefully. 
- !May not be needed anymore.
+* when loading 1.5+ classfile with sourcelevel <=1.4, vanilla javac throws 
away any 1.5 information stored in the classfile. In IDE mode, this information 
is preserved. 
+
+== Miscallenous
+
+* small extensions to allow parsing and attributing a "standalone" statement, 
expression, etc. in the given context.
+* small extensions to JavacTaskImpl to allow per-file per-phase parsing of 
multiple sources in the same instance of javac
+* access restrictions loosened for a lot methods/classes (private->protected, 
etc.)
+* inlineTags cache for ParamTagImpl and ThrowsTagImpl
+* string folding is disabled (by "disableStringFolding" option) to so that 
concatenated strings are represented by full trees
+* ToolProvider loads classes from context classloader
+* TreeInfo.symbolFor works all trees that refer to a symbol 
+
diff --git a/netbeans.apache.org/src/content/wiki/debug-setup-flowchart.pdf 
b/netbeans.apache.org/src/content/wiki/debug-setup-flowchart.pdf
new file mode 100644
index 000000000..e7f28aa66
Binary files /dev/null and 
b/netbeans.apache.org/src/content/wiki/debug-setup-flowchart.pdf differ
diff --git 
a/netbeans.apache.org/src/content/wiki/phpinfo_phpversion_HowToConfigureXDebug.png
 
b/netbeans.apache.org/src/content/wiki/phpinfo_phpversion_HowToConfigureXDebug.png
new file mode 100644
index 000000000..3bf2830f0
Binary files /dev/null and 
b/netbeans.apache.org/src/content/wiki/phpinfo_phpversion_HowToConfigureXDebug.png
 differ
diff --git 
a/netbeans.apache.org/src/content/wiki/phpinfo_thread_safety_HowToConfigureXDebug.png
 
b/netbeans.apache.org/src/content/wiki/phpinfo_thread_safety_HowToConfigureXDebug.png
new file mode 100644
index 000000000..fb5bc1409
Binary files /dev/null and 
b/netbeans.apache.org/src/content/wiki/phpinfo_thread_safety_HowToConfigureXDebug.png
 differ
diff --git 
a/netbeans.apache.org/src/content/wiki/xdebug_HowToConfigureXDebug.png 
b/netbeans.apache.org/src/content/wiki/xdebug_HowToConfigureXDebug.png
new file mode 100644
index 000000000..603814445
Binary files /dev/null and 
b/netbeans.apache.org/src/content/wiki/xdebug_HowToConfigureXDebug.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to