Thunar (the Xfce's file manager) have been dumping .core files and I am willing to investigate.
Note: I set my /etc/mk.conf so that my ports tree is read-only. Everything produced by the tree goes in /var/ports

I have several, a lot, of questions:
1. I need a binary build with debug symbols so that I can use it with [cmd]gdb[/cmd] and the .core file, but can I use a .core file produced by a binary without debug symbols ?
2. How to make a binary with debug symbols. I tried #cd /usr/ports/x11/xfce4/thunar && make DEBUG_FLAGS=-g ?
3. By doing #make install I am sure /usr/local/bin/thunar binary will be replaced ?
4. I don't want to install the new binary. I just want to use it for the debugging part: %gdb /var/ports/obj/ ... /.libs/thunar thunar.core. Is this reasonnable? By the way, thunar seems to be a shared library.
5. How to properly clean the ports tree ? #make clean && make clean=depends && make clean=dist && pkg_delete -a is ok ?

...can I use a .core file produced by a binary without debug symbols ?

I don't know. I don't recall ever trying. Normally, if I want symbols I also want a module that is not optimized.

Quote:

...How to make a binary with debug symbols.

It depends on the compiler, usually -g (and -O0) are added to CFLAGS or CXXFLAGS. I usually do this by copying Makefile to makefile, then editing the makefile, as make(1) will ignore Makefile if makefile exists. But this is for debugging only. If I need to edit the port to correct a problem after debugging, I rm(1) my temporary debugging makefile and make myedits to the Makefile, as I need to produce a useful diff(1) against the CVS repository to post a patch.

Quote:

... I am sure /usr/local/bin/thunar binary will be replaced ?

Only if you make install. You can make fake, which is a pre-packaging step used with every port. It install the port into a private directory structure. See THE FAKE FRAMEWORK in bsd.ports.mk(5).

Quote:

By the way, thunar seems to be a shared library.

looking at its PLIST, it includes shared libraries. That seems reasonable, as there are 4 thunar applications in the x11/xfce4 branch of the ports tree.

Quote:

5. How to properly clean the ports tree ?

Building a port makes no changes within a port's "leaf" of the tree. There are directory structures used to build the port's package or packages. The upstream distribution source is fetched to the $DISTDIR structure, extracted, built, and readied for packaging in the $WRKDIR structure. There are additional registrations, such as the contents of the packing list ("plist") and in a bulk build, there are bulk-build cookies and log/status files. Any build dependencies that were not already installed will be built or fetched, depending on $FETCH_PACKAGES and whether the $PKG_PATH contains a correct, installable version of the necessary dependency. For x11/xfce4/thunar, by default $DISTDIR and $WRKDIR are /usr/ports/distfiles and
/usr/ports/pobj/thunar-1.6.12 at 6.2-release, or /usr/ports/pobj/thunar-1.6.14 at -current.

Your "clean" example both removed too much and too little. You don't need to delete the package from your system -- unless you install it, which you state you do not want to do. And your clean skipped the plist registration (in /usr/ports/plist).

A terrific resource for port testing and debugging is the Port Testing Guide, a chapter in the Porter's Handbook.

I already edited /etc/mk.conf regarding those variables, using [oman=7]ports[/man].

I am using a makefile instead of Makefile now. Simply adding a line

Code:

CFLAGS="-g"

allow me to build a debuggable version.

I used make fake and managed to re-trigger the crash with the thunar from the fake install directory but no .core dumped.
So I make install it and now I have my .core file and the binary to debug it.

I have little (as in "not much but already successfuly used it") experience in gdb. I can see the backtrace.
I guess the next step is to run the debuggable binary in gdb, add breakpoints, read variables then edit sources file, rebuild ,repeat ...

The porter's guide is my next read for sure.
Thank you.

P.S:
Along the way, I was hoping to get .core file from the thunar in the OBSD package. Just for research purposes ...
So I removed the thunar from /usr/local/bin and run #pkg_check to repair the installation from the packages provided by OBSD. I believe the package used was the one I built myself which defeated the purpose.