From d6ff04a343f97026f7d23bb036e0f858b21f3bfd Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Fri, 25 Jun 2021 21:38:51 -0400 Subject: [PATCH] gdb: add assert in cmd_list_element::set_context If something tries to set a context pointer on a cmd_list_element and m_context is not nullptr, it's likely that two parts of the code are trying to set different contexts, and one will overwrite the other. This is almost guaranteed to lead to bad behavior or a crash, as one of the spots will not be using the data it expects. This happened to me during development, so I think having this assert would be useful to catch this problem earlier. gdb/ChangeLog: * cli/cli-decode.h (struct cmd_list_element) : Add assert. Change-Id: I1f2e9fda1bf2bec1b732c9b90e7d7910a97f2ac6 --- gdb/ChangeLog | 5 +++++ gdb/cli/cli-decode.h | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c523186cdd7..6ba91d8ec6e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2021-06-25 Simon Marchi + + * cli/cli-decode.h (struct cmd_list_element) : Add + assert. + 2021-06-25 Simon Marchi * cli/cli-decode.h (struct cmd_list_element) func == nullptr; } void set_context (void *context) - { m_context = context; } + { + gdb_assert (m_context == nullptr); + m_context = context; + } void *context () const { return m_context; } -- 2.30.2