Commit a0ddf3b0 authored by Michael Cook's avatar Michael Cook

Run lte-softmodem via gdb and vscode

See cmake_targets/gdb.txt for notes
parent cb845816
...@@ -4,18 +4,22 @@ ...@@ -4,18 +4,22 @@
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0", "version": "0.2.0",
"configurations": [ "configurations": [
{ {
"name": "(gdb) Launch", "name": "(gdb) Launch",
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "enter program name, for example ${workspaceFolder}/a.exe", "program": "${workspaceFolder}/cmake_targets/ran_build/build/lte-softmodem",
"args": [], "args": [
"-O", "../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf",
"--noS1"
],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}/cmake_targets",
"environment": [], "environment": [],
"externalConsole": false, "externalConsole": false,
"MIMode": "gdb", "MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb", "miDebuggerPath": "${workspaceFolder}/cmake_targets/sudo-gdb",
"setupCommands": [ "setupCommands": [
{ {
"description": "Enable pretty-printing for gdb", "description": "Enable pretty-printing for gdb",
......
#!/bin/bash
cd "$(dirname "$0")/.." || exit
source oaienv
cd cmake_targets || exit
cmd=(
./ran_build/build/lte-softmodem
-O ../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf
--noS1
"$@"
)
exec sudo -E gdb "$@" --args "${cmd[@]}"
Make sure you've built with debug info:
cd ~/openairinterface5g # or wherever
source oaienv
cd cmake_targets
./build_oai --UE --eNB --verbose-compile --run-with-gdb RelWithDebInfo
make -C ran_build/build -j4 lte-softmodem lte-uesoftmodem
Verify the build was done correctly:
$ ./gdb-helper
...
Reading symbols from ./ran_build/build/lte-softmodem...done.
(gdb) b main
Breakpoint 1 at 0x59f110: file /local/episys/openairinterface5g/targets/RT/USER/lte-softmodem.c, line 516.
(gdb) run
Starting program: /local/episys/openairinterface5g/cmake_targets/ran_build/build/lte-softmodem -O ../ci-scripts/conf_files/rcc.band7.tm1.nfapi.conf --noS1
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Breakpoint 1, main (argc=4, argv=0x7fffffffe058) at /local/episys/openairinterface5g/targets/RT/USER/lte-softmodem.c:516
516 {
(gdb) list
511 pthread_mutex_unlock(&nfapi_sync_mutex);
512 printf( "NFAPI: got sync (%s)\n", thread_name);
513 }
514
515 int main ( int argc, char **argv )
516 {
517 struct sched_param param =
518 {
519 .sched_priority = 79
520 };
(gdb) n
521 if (sched_setscheduler( 0, SCHED_RR, &param ) == -1 )
(gdb) quit
A debugging session is active.
Inferior 1 [process 19964] will be killed.
Quit anyway? (y or n) y
$
If gdb says "no debugging symbols found" then clean your workspace and re-do
the build as above.
(gdb) b main
Using Vscode
cd ~/openairinterface5g # or wherever
code . targets/RT/USER/lte-softmodem.c .vscode/launch.json
See launch.json for details about how lte-softmodem is launched.
#!/bin/bash
# Helper script for Vscode. See .vscode/launch.json "miDebuggerPath"
cd "$(dirname "$0")/.." || exit
source oaienv
cd cmake_targets || exit
exec sudo -E gdb "$@"
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment