projects
/
fw
/
openocd
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
target/arm_dap: fix segmentation fault in 'dap info' cmd
[fw/openocd]
/
src
/
openocd.c
diff --git
a/src/openocd.c
b/src/openocd.c
index bd52f4acf57b36aee476ae1b79f5a0dd6dc41bdb..f084dd4522d6294e027578982f803d9c9b86927b 100644
(file)
--- a/
src/openocd.c
+++ b/
src/openocd.c
@@
-87,13
+87,13
@@
static int log_target_callback_event_handler(struct target *target,
{
switch (event) {
case TARGET_EVENT_GDB_START:
{
switch (event) {
case TARGET_EVENT_GDB_START:
- target->
display = 0
;
+ target->
verbose_halt_msg = false
;
break;
case TARGET_EVENT_GDB_END:
break;
case TARGET_EVENT_GDB_END:
- target->
display = 1
;
+ target->
verbose_halt_msg = true
;
break;
case TARGET_EVENT_HALTED:
break;
case TARGET_EVENT_HALTED:
- if (target->
display
) {
+ if (target->
verbose_halt_msg
) {
/* do not display information when debugger caused the halt */
target_arch_state(target);
}
/* do not display information when debugger caused the halt */
target_arch_state(target);
}
@@
-353,16
+353,21
@@
int openocd_main(int argc, char *argv[])
/* Start the executable meat that can evolve into thread in future. */
ret = openocd_thread(argc, argv, cmd_ctx);
/* Start the executable meat that can evolve into thread in future. */
ret = openocd_thread(argc, argv, cmd_ctx);
+ flash_free_all_banks();
gdb_service_free();
server_free();
unregister_all_commands(cmd_ctx, NULL);
gdb_service_free();
server_free();
unregister_all_commands(cmd_ctx, NULL);
- /* Shutdown commandline interface */
- command_exit(cmd_ctx);
+ /* free all DAP and CTI objects */
+ dap_cleanup_all();
+ arm_cti_cleanup_all();
adapter_quit();
adapter_quit();
+ /* Shutdown commandline interface */
+ command_exit(cmd_ctx);
+
free_config();
if (ERROR_FAIL == ret)
free_config();
if (ERROR_FAIL == ret)