Index: doc/working/exception/impl/Makefile
===================================================================
--- doc/working/exception/impl/Makefile	(revision fd732488a0c9611e90598dc83b89dfc5bf7e63b4)
+++ doc/working/exception/impl/Makefile	(revision af00c4589447fcba274fd7a68bac3d284e211d76)
@@ -1,3 +1,3 @@
-CFLAGS = -fexceptions -Wall -Werror
+CFLAGS = -fexceptions -Wall -Werror -g
 CC = gcc
 
@@ -16,4 +16,7 @@
 	$(CC) $(CFLAGS) -o $@ $^
 
+exception.s: exception.c
+	$(CC) $(CFLAGS) -S -o $@ -fPIC $^
+
 libexcept.so: exception.c
 	$(CC) $(CFLAGS) -shared -o $@ -fPIC $^
Index: doc/working/exception/impl/exception.c
===================================================================
--- doc/working/exception/impl/exception.c	(revision fd732488a0c9611e90598dc83b89dfc5bf7e63b4)
+++ doc/working/exception/impl/exception.c	(revision af00c4589447fcba274fd7a68bac3d284e211d76)
@@ -382,4 +382,9 @@
 	"	.text\n"							// TABLE footer
 	"	.size	__try_terminate, .-__try_terminate\n"
+);
+
+// Somehow this piece of helps with the resolution of debug symbols.
+__attribute__((unused)) static const int dummy = 0;
+asm (
 	"	.hidden	CFA.ref.__gcfa_personality_v0\n"	// Declare an new hidden symbol
 	"	.weak	CFA.ref.__gcfa_personality_v0\n"
Index: doc/working/exception/impl/nopic.s
===================================================================
--- doc/working/exception/impl/nopic.s	(revision fd732488a0c9611e90598dc83b89dfc5bf7e63b4)
+++ 	(revision )
@@ -1,104 +1,0 @@
-	.file	"test.c"
-	.text
-	.globl	clean
-	.type	clean, @function
-clean:
-.LFB0:
-	.cfi_startproc
-	pushq	%rbp
-	.cfi_def_cfa_offset 16
-	.cfi_offset 6, -16
-	movq	%rsp, %rbp
-	.cfi_def_cfa_register 6
-	movq	%rdi, -8(%rbp)
-	nop
-	popq	%rbp
-	.cfi_def_cfa 7, 8
-	ret
-	.cfi_endproc
-.LFE0:
-	.size	clean, .-clean
-	.globl	foo
-	.type	foo, @function
-foo:
-.LFB1:
-	.cfi_startproc
-	.cfi_personality 0x3,__gcc_personality_v0
-	.cfi_lsda 0x3,.LLSDA1
-	pushq	%rbp
-	.cfi_def_cfa_offset 16
-	.cfi_offset 6, -16
-	movq	%rsp, %rbp
-	.cfi_def_cfa_register 6
-	pushq	%r13
-	pushq	%r12
-	pushq	%rbx
-	subq	$40, %rsp
-	.cfi_offset 13, -24
-	.cfi_offset 12, -32
-	.cfi_offset 3, -40
-	movl	%edi, -52(%rbp)
-	movq	%fs:40, %rax
-	movq	%rax, -40(%rbp)
-	xorl	%eax, %eax
-	movl	-52(%rbp), %eax
-	movl	%eax, %edi
-.LEHB0:
-	call	bar
-.LEHE0:
-	movl	%eax, %r13d
-	movl	$0, %r12d
-.L7:
-	leaq	-44(%rbp), %rax
-	movq	%rax, %rdi
-	call	clean
-	cmpl	$1, %r12d
-	je	.L4
-	movl	%r13d, %eax
-	movq	-40(%rbp), %rdx
-	xorq	%fs:40, %rdx
-	je	.L8
-	jmp	.L10
-.L9:
-	movq	%rax, %rbx
-	movl	$1, %r12d
-	jmp	.L7
-.L4:
-	movq	%rbx, %rax
-	movq	%rax, %rdi
-.LEHB1:
-	call	_Unwind_Resume
-.LEHE1:
-.L10:
-	call	__stack_chk_fail
-.L8:
-	addq	$40, %rsp
-	popq	%rbx
-	popq	%r12
-	popq	%r13
-	popq	%rbp
-	.cfi_def_cfa 7, 8
-	ret
-	.cfi_endproc
-.LFE1:
-	.globl	__gcc_personality_v0
-	.section	.gcc_except_table,"a",@progbits
-.LLSDA1:
-	.byte	0xff
-	.byte	0xff
-	.byte	0x1
-	.uleb128 .LLSDACSE1-.LLSDACSB1
-.LLSDACSB1:
-	.uleb128 .LEHB0-.LFB1
-	.uleb128 .LEHE0-.LEHB0
-	.uleb128 .L9-.LFB1
-	.uleb128 0
-	.uleb128 .LEHB1-.LFB1
-	.uleb128 .LEHE1-.LEHB1
-	.uleb128 0
-	.uleb128 0
-.LLSDACSE1:
-	.text
-	.size	foo, .-foo
-	.ident	"GCC: (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1) 7.4.0"
-	.section	.note.GNU-stack,"",@progbits
Index: doc/working/exception/impl/pdc.s
===================================================================
--- doc/working/exception/impl/pdc.s	(revision af00c4589447fcba274fd7a68bac3d284e211d76)
+++ doc/working/exception/impl/pdc.s	(revision af00c4589447fcba274fd7a68bac3d284e211d76)
@@ -0,0 +1,104 @@
+	.file	"test.c"
+	.text
+	.globl	clean
+	.type	clean, @function
+clean:
+.LFB0:
+	.cfi_startproc
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset 6, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register 6
+	movq	%rdi, -8(%rbp)
+	nop
+	popq	%rbp
+	.cfi_def_cfa 7, 8
+	ret
+	.cfi_endproc
+.LFE0:
+	.size	clean, .-clean
+	.globl	foo
+	.type	foo, @function
+foo:
+.LFB1:
+	.cfi_startproc
+	.cfi_personality 0x3,__gcc_personality_v0
+	.cfi_lsda 0x3,.LLSDA1
+	pushq	%rbp
+	.cfi_def_cfa_offset 16
+	.cfi_offset 6, -16
+	movq	%rsp, %rbp
+	.cfi_def_cfa_register 6
+	pushq	%r13
+	pushq	%r12
+	pushq	%rbx
+	subq	$40, %rsp
+	.cfi_offset 13, -24
+	.cfi_offset 12, -32
+	.cfi_offset 3, -40
+	movl	%edi, -52(%rbp)
+	movq	%fs:40, %rax
+	movq	%rax, -40(%rbp)
+	xorl	%eax, %eax
+	movl	-52(%rbp), %eax
+	movl	%eax, %edi
+.LEHB0:
+	call	bar
+.LEHE0:
+	movl	%eax, %r13d
+	movl	$0, %r12d
+.L7:
+	leaq	-44(%rbp), %rax
+	movq	%rax, %rdi
+	call	clean
+	cmpl	$1, %r12d
+	je	.L4
+	movl	%r13d, %eax
+	movq	-40(%rbp), %rdx
+	xorq	%fs:40, %rdx
+	je	.L8
+	jmp	.L10
+.L9:
+	movq	%rax, %rbx
+	movl	$1, %r12d
+	jmp	.L7
+.L4:
+	movq	%rbx, %rax
+	movq	%rax, %rdi
+.LEHB1:
+	call	_Unwind_Resume
+.LEHE1:
+.L10:
+	call	__stack_chk_fail
+.L8:
+	addq	$40, %rsp
+	popq	%rbx
+	popq	%r12
+	popq	%r13
+	popq	%rbp
+	.cfi_def_cfa 7, 8
+	ret
+	.cfi_endproc
+.LFE1:
+	.globl	__gcc_personality_v0
+	.section	.gcc_except_table,"a",@progbits
+.LLSDA1:
+	.byte	0xff
+	.byte	0xff
+	.byte	0x1
+	.uleb128 .LLSDACSE1-.LLSDACSB1
+.LLSDACSB1:
+	.uleb128 .LEHB0-.LFB1
+	.uleb128 .LEHE0-.LEHB0
+	.uleb128 .L9-.LFB1
+	.uleb128 0
+	.uleb128 .LEHB1-.LFB1
+	.uleb128 .LEHE1-.LEHB1
+	.uleb128 0
+	.uleb128 0
+.LLSDACSE1:
+	.text
+	.size	foo, .-foo
+	.ident	"GCC: (Ubuntu 7.4.0-1ubuntu1~16.04~ppa1) 7.4.0"
+	.section	.note.GNU-stack,"",@progbits
Index: doc/working/exception/impl/pic.s
===================================================================
--- doc/working/exception/impl/pic.s	(revision fd732488a0c9611e90598dc83b89dfc5bf7e63b4)
+++ doc/working/exception/impl/pic.s	(revision af00c4589447fcba274fd7a68bac3d284e211d76)
@@ -1,8 +1,11 @@
 	.file	"test.c"
 	.text
+.Ltext0:
 	.globl	clean
 	.type	clean, @function
 clean:
 .LFB0:
+	.file 1 "test.c"
+	.loc 1 1 0
 	.cfi_startproc
 	pushq	%rbp
@@ -12,4 +15,5 @@
 	.cfi_def_cfa_register 6
 	movq	%rdi, -8(%rbp)
+	.loc 1 1 0
 	nop
 	popq	%rbp
@@ -23,4 +27,5 @@
 foo:
 .LFB1:
+	.loc 1 4 0
 	.cfi_startproc
 	.cfi_personality 0x9b,DW.ref.__gcc_personality_v0
@@ -39,7 +44,9 @@
 	.cfi_offset 3, -40
 	movl	%edi, -52(%rbp)
+	.loc 1 4 0
 	movq	%fs:40, %rax
 	movq	%rax, -40(%rbp)
 	xorl	%eax, %eax
+	.loc 1 6 0
 	movl	-52(%rbp), %eax
 	movl	%eax, %edi
@@ -50,4 +57,5 @@
 	movl	$0, %r12d
 .L7:
+	.loc 1 5 0
 	leaq	-44(%rbp), %rax
 	movq	%rax, %rdi
@@ -56,5 +64,7 @@
 	cmpl	$1, %r12d
 	je	.L4
+	.loc 1 6 0
 	movl	%r13d, %eax
+	.loc 1 7 0
 	movq	-40(%rbp), %rdx
 	xorq	%fs:40, %rdx
@@ -64,4 +74,5 @@
 	movq	%rax, %rbx
 	movl	$1, %r12d
+	.loc 1 5 0
 	jmp	.L7
 .L4:
@@ -71,4 +82,5 @@
 .LEHE1:
 .L10:
+	.loc 1 7 0
 	call	__stack_chk_fail@PLT
 .L8:
@@ -101,4 +113,219 @@
 	.text
 	.size	foo, .-foo
+.Letext0:
+	.section	.debug_info,"",@progbits
+.Ldebug_info0:
+	.long	0x9c
+	.value	0x4
+	.long	.Ldebug_abbrev0
+	.byte	0x8
+	.uleb128 0x1
+	.long	.LASF0
+	.byte	0xc
+	.long	.LASF1
+	.long	.LASF2
+	.quad	.Ltext0
+	.quad	.Letext0-.Ltext0
+	.long	.Ldebug_line0
+	.uleb128 0x2
+	.string	"foo"
+	.byte	0x1
+	.byte	0x4
+	.long	0x68
+	.quad	.LFB1
+	.quad	.LFE1-.LFB1
+	.uleb128 0x1
+	.byte	0x9c
+	.long	0x68
+	.uleb128 0x3
+	.string	"x"
+	.byte	0x1
+	.byte	0x4
+	.long	0x68
+	.uleb128 0x3
+	.byte	0x91
+	.sleb128 -68
+	.uleb128 0x4
+	.string	"i"
+	.byte	0x1
+	.byte	0x5
+	.long	0x68
+	.uleb128 0x2
+	.byte	0x91
+	.sleb128 -60
+	.byte	0
+	.uleb128 0x5
+	.byte	0x4
+	.byte	0x5
+	.string	"int"
+	.uleb128 0x6
+	.long	.LASF3
+	.byte	0x1
+	.byte	0x1
+	.quad	.LFB0
+	.quad	.LFE0-.LFB0
+	.uleb128 0x1
+	.byte	0x9c
+	.long	0x99
+	.uleb128 0x3
+	.string	"p"
+	.byte	0x1
+	.byte	0x1
+	.long	0x99
+	.uleb128 0x2
+	.byte	0x91
+	.sleb128 -24
+	.byte	0
+	.uleb128 0x7
+	.byte	0x8
+	.long	0x68
+	.byte	0
+	.section	.debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+	.uleb128 0x1
+	.uleb128 0x11
+	.byte	0x1
+	.uleb128 0x25
+	.uleb128 0xe
+	.uleb128 0x13
+	.uleb128 0xb
+	.uleb128 0x3
+	.uleb128 0xe
+	.uleb128 0x1b
+	.uleb128 0xe
+	.uleb128 0x11
+	.uleb128 0x1
+	.uleb128 0x12
+	.uleb128 0x7
+	.uleb128 0x10
+	.uleb128 0x17
+	.byte	0
+	.byte	0
+	.uleb128 0x2
+	.uleb128 0x2e
+	.byte	0x1
+	.uleb128 0x3f
+	.uleb128 0x19
+	.uleb128 0x3
+	.uleb128 0x8
+	.uleb128 0x3a
+	.uleb128 0xb
+	.uleb128 0x3b
+	.uleb128 0xb
+	.uleb128 0x27
+	.uleb128 0x19
+	.uleb128 0x49
+	.uleb128 0x13
+	.uleb128 0x11
+	.uleb128 0x1
+	.uleb128 0x12
+	.uleb128 0x7
+	.uleb128 0x40
+	.uleb128 0x18
+	.uleb128 0x2116
+	.uleb128 0x19
+	.uleb128 0x1
+	.uleb128 0x13
+	.byte	0
+	.byte	0
+	.uleb128 0x3
+	.uleb128 0x5
+	.byte	0
+	.uleb128 0x3
+	.uleb128 0x8
+	.uleb128 0x3a
+	.uleb128 0xb
+	.uleb128 0x3b
+	.uleb128 0xb
+	.uleb128 0x49
+	.uleb128 0x13
+	.uleb128 0x2
+	.uleb128 0x18
+	.byte	0
+	.byte	0
+	.uleb128 0x4
+	.uleb128 0x34
+	.byte	0
+	.uleb128 0x3
+	.uleb128 0x8
+	.uleb128 0x3a
+	.uleb128 0xb
+	.uleb128 0x3b
+	.uleb128 0xb
+	.uleb128 0x49
+	.uleb128 0x13
+	.uleb128 0x2
+	.uleb128 0x18
+	.byte	0
+	.byte	0
+	.uleb128 0x5
+	.uleb128 0x24
+	.byte	0
+	.uleb128 0xb
+	.uleb128 0xb
+	.uleb128 0x3e
+	.uleb128 0xb
+	.uleb128 0x3
+	.uleb128 0x8
+	.byte	0
+	.byte	0
+	.uleb128 0x6
+	.uleb128 0x2e
+	.byte	0x1
+	.uleb128 0x3f
+	.uleb128 0x19
+	.uleb128 0x3
+	.uleb128 0xe
+	.uleb128 0x3a
+	.uleb128 0xb
+	.uleb128 0x3b
+	.uleb128 0xb
+	.uleb128 0x27
+	.uleb128 0x19
+	.uleb128 0x11
+	.uleb128 0x1
+	.uleb128 0x12
+	.uleb128 0x7
+	.uleb128 0x40
+	.uleb128 0x18
+	.uleb128 0x2117
+	.uleb128 0x19
+	.uleb128 0x1
+	.uleb128 0x13
+	.byte	0
+	.byte	0
+	.uleb128 0x7
+	.uleb128 0xf
+	.byte	0
+	.uleb128 0xb
+	.uleb128 0xb
+	.uleb128 0x49
+	.uleb128 0x13
+	.byte	0
+	.byte	0
+	.byte	0
+	.section	.debug_aranges,"",@progbits
+	.long	0x2c
+	.value	0x2
+	.long	.Ldebug_info0
+	.byte	0x8
+	.byte	0
+	.value	0
+	.value	0
+	.quad	.Ltext0
+	.quad	.Letext0-.Ltext0
+	.quad	0
+	.quad	0
+	.section	.debug_line,"",@progbits
+.Ldebug_line0:
+	.section	.debug_str,"MS",@progbits,1
+.LASF0:
+	.string	"GNU C11 7.4.0 -mtune=generic -march=x86-64 -g -fexceptions -fPIC -fstack-protector-strong"
+.LASF2:
+	.string	"/home/tdelisle/workspace/cforall/main/doc/working/exception/impl"
+.LASF1:
+	.string	"test.c"
+.LASF3:
+	.string	"clean"
 	.hidden	DW.ref.__gcc_personality_v0
 	.weak	DW.ref.__gcc_personality_v0
