[Lldb-commits] [lldb] [llvm] [lldb][RISCV] function calls support in lldb expressions (PR #99336)

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 10 05:39:06 PDT 2024


================
@@ -0,0 +1,62 @@
+//===--- DirectCallReplacementPass.h - RISC-V specific pass ---------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLDB_SOURCE_PLUGINS_ARCHITECTURE_RISCV_DIRECTCALLREPLACEMENTPASS_H
+#define LLDB_SOURCE_PLUGINS_ARCHITECTURE_RISCV_DIRECTCALLREPLACEMENTPASS_H
+
+#include "lldb/lldb-types.h"
+
+#include "llvm/IR/Instructions.h"
+#include "llvm/Pass.h"
+
+namespace lldb_private {
+
+class ExecutionContext;
+
+// During the lldb expression execution lldb wraps a user expression, jittes
+// fabricated code and then puts it into the stack memory. Thus, if user tried
----------------
DavidSpickett wrote:

Ok then maybe lldb is first looking for anything known to be executable then falling back to memory where it's unknown whether it's executable. That would include the stack in some scenarios.

I know ideally we find an mmap symbol and call it but clearly this only works for hosted systems and requires a a decent feature set first.

https://github.com/llvm/llvm-project/pull/99336


More information about the lldb-commits mailing list