debug messages: implement dynamic debug

Heavily inspired off linux kernel's dynamic debug:
 * add a /sys/kernel/debug/dynamic_debug/control file
 (accessible from linux side in /sys/class/mcos/mcos0/sys/kernel/debug/dynamic_debug/control)
 * read from file to list debug statements (currently limited to 4k in size)
 * write to file with '[file foo ][func bar ][line [x][-[y]]] [+-]p' to change values

Side effects:
 * reindented all linker scripts, there is a new __verbose section
 * added string function strpbrk

Change-Id: I36d7707274dcc3ecaf200075a31a2f0f76021059
This commit is contained in:
Dominique Martinet
2018-05-24 18:17:45 +09:00
parent bc887aab44
commit 3185334c1c
48 changed files with 407 additions and 232 deletions

View File

@ -1,24 +1,28 @@
PHDRS
{
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(7);
data PT_LOAD FLAGS(7);
}
SECTIONS
{
. = 0xffffffff80001000;
_head = .;
_head = .;
.text : {
*(.text);
} : text
.text : {
*(.text);
} : text
. = ALIGN(4096);
. = ALIGN(4096);
.data : {
*(.data)
*(.data.*)
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)
*(.rodata .rodata.*)
} :data
.vsyscall : ALIGN(0x1000) {
@ -37,14 +41,14 @@ SECTIONS
. = ALIGN(4096);
} : data = 0xf4
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
/DISCARD/ : {
*(.eh_frame)
*(.note.gnu.build-id)
*(.eh_frame)
*(.note.gnu.build-id)
}
}

View File

@ -1,24 +1,28 @@
PHDRS
{
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(7);
data PT_LOAD FLAGS(7);
}
SECTIONS
{
. = 0xffffffff80001000;
_head = .;
_head = .;
.text : {
*(.text);
} : text
.text : {
*(.text);
} : text
. = ALIGN(4096);
. = ALIGN(4096);
.data : {
*(.data)
*(.data.*)
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)
*(.rodata .rodata.*)
} :data
.vsyscall : ALIGN(0x1000) {
@ -37,14 +41,14 @@ SECTIONS
. = ALIGN(4096);
} : data = 0xf4
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
/DISCARD/ : {
*(.eh_frame)
*(.note.gnu.build-id)
*(.eh_frame)
*(.note.gnu.build-id)
}
}

View File

@ -1,24 +1,28 @@
PHDRS
{
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(7);
data PT_LOAD FLAGS(7);
}
SECTIONS
{
. = 0xffffffff80001000;
_head = .;
_head = .;
.text : {
*(.text);
} : text
.text : {
*(.text);
} : text
. = ALIGN(4096);
. = ALIGN(4096);
.data : {
*(.data)
*(.data.*)
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)
*(.rodata .rodata.*)
} :data
.vsyscall : ALIGN(0x1000) {
@ -37,10 +41,10 @@ SECTIONS
. = ALIGN(4096);
} : data = 0xf4
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
}

View File

@ -16,6 +16,10 @@ SECTIONS
.data : {
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)

View File

@ -16,6 +16,10 @@ SECTIONS
.data : {
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)

View File

@ -16,6 +16,10 @@ SECTIONS
.data : {
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)

View File

@ -16,6 +16,10 @@ SECTIONS
.data : {
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)

View File

@ -1,24 +1,28 @@
PHDRS
{
text PT_LOAD FLAGS(5);
data PT_LOAD FLAGS(7);
data PT_LOAD FLAGS(7);
}
SECTIONS
{
. = 0xffffffff80001000;
_head = .;
_head = .;
.text : {
*(.text);
} : text
.text : {
*(.text);
} : text
. = ALIGN(4096);
. = ALIGN(4096);
.data : {
*(.data)
*(.data.*)
*(.data)
*(.data.*)
. = ALIGN(8);
__start___verbose = .;
*(__verbose);
__stop___verbose = .;
} :data
.rodata : {
*(.rodata .rodata.*)
*(.rodata .rodata.*)
} :data
.vsyscall : ALIGN(0x1000) {
@ -37,9 +41,9 @@ SECTIONS
. = ALIGN(4096);
} : data = 0xf4
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
.bss : {
*(.bss .bss.*)
}
. = ALIGN(4096);
_end = .;
}