[v2,25/30] Use a function-domain search in inside_main_func

Message ID 20240118-submit-domain-hacks-2-v2-25-aecab29fa104@tromey.com
State New
Headers
Series Restructure symbol domains |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gdb_build--master-aarch64 fail Patch failed to apply
linaro-tcwg-bot/tcwg_gdb_build--master-arm fail Patch failed to apply

Commit Message

Tom Tromey Jan. 18, 2024, 8:32 p.m. UTC
  This changes inside_main_func to search only for functions.
---
 gdb/frame.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)
  

Patch

diff --git a/gdb/frame.c b/gdb/frame.c
index 03f3c50cb8d..7d586eef244 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -2560,13 +2560,9 @@  inside_main_func (frame_info_ptr this_frame)
 	 symbol with the name of the main function.  In this case we should
 	 search the full symbols to see if we can find a match.  */
       struct block_symbol bs = lookup_symbol (name, nullptr,
-					      SEARCH_VFT, nullptr);
+					      SEARCH_FUNCTION_DOMAIN, nullptr);
 
-      /* We might have found some unrelated symbol.  For example, the
-	 Rust compiler can emit both a subprogram and a namespace with
-	 the same name in the same scope; and due to how gdb's symbol
-	 tables currently work, we can't request the one we'd
-	 prefer.  */
+      /* This lookup should always yield a block-valued symbol.  */
       if (bs.symbol != nullptr && bs.symbol->aclass () == LOC_BLOCK)
 	{
 	  const struct block *block = bs.symbol->value_block ();