<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61283>61283</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [LLDB-API] Failed to modify the variable of long double type:unable to write value to memory.
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          wangqk1997
      </td>
    </tr>
</table>

<pre>
    I have been trying to use LLDB-API to change variable types. It works fine for all other types except for long double. It will give an error message: "unable to write value to memory"
The demo that I tried is as follow:

```
#include "mpi.h"
#include <stdio.h>

int main(int argc, char *argv[])
{
    MPI_Init(&argc, &argv);
    unsigned long a = 111;
    unsigned long int a1 = 111;
    long double k = 0.34;
    MPI_Finalize();
    return 0;
}
```

So, this is my approach on calling the API:

First I Initialize the SBTarget as follow:
```
sb_target: lldb.SBTarget = debugger.CreateTargetWithFileAndArch(self.bin_path, lldb.LLDB_ARCH_DEFAULT)
sb_process: lldb.SBProcess = sb_target.ConnectRemote(...)
```

I'm pretty sure that the first step is correct, otherwise following call process would fail.

Then I tried to change the variable type (This is where the error message was generated):

```
select_frame = sb_process.GetSelectedThread().GetSelectedFrame()
sb_value = select_frame.FindVariable(root_variable_name) # root_variable_name is k
print(sb_value.GetName()) # output k
sb_value.SetValueFromCString(value, error) # value is 1
if error.Success():
        …
        return ‘success’
return str(error)
```



</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyEVd2OqzYQfhrnZnQQmPzARS5IsrSRttXqJD29jAwM4K6xqW2Spk9f2ZBs0q62UkRsz98338zYzBjeSMQ1WWzIYjdjg22VXl-YbP58j9J0NStUdV3voWVnhAJRgtVXLhuwCgaD8Pq623zL3vZuX7ZMNghnpjkrBIK99mgC2Fu4KP1uoOYSoVYamBCgbIt6VAH8q8TeepFQsoFKDYXA0ZILAQ0_IzAJqLXS0KExrEESZ0AoHeQYS8FFc-uii8FvO-yUvhJKSbgjYXZsESrsFNiWWdiD1Rwr4AaYgVoJoS4kzkbV6bsMp9-4pTGXpRgqdFG7ngft3fejLN4aW3EVtCR-eXTHpYWOcUlo4pZMNyWhW8eZBkIzppvzWANC08lutRkXAAC_vO1Pe8ktoQmhy5v1uDw7k_hBeZC-qtXIJgMS7yCKoi90PKToU8WHisC71wiDeP6k4sDlXDLB_0YP8BmORjtoCeH9kKx2n3PsvwflUrMtN6483RVY32vFyhaUhJIJ4duvRcje9v-qWc61ccV1THEPxyseNkemG7Sf1foZgSlO1qu67hKiKoK7rcu8wmJoGtTBViOzOEp-57bNucBMVpkuW0ITg6IOCi5PPbOtS8Z7cqNyyr5vfz7tXvLst9fjvdKmOPValWjMQ9i38cTHvcMKtkpKLO137JR1XAdB8NEwn7G5J3TVQa_R2iuYQeM4AI6W2rNlLPaO6FJpjaV1cP1sXrjBiS1HuCMeJpRwUYOooGZcBI-xji3K-2h9XAgu1tOlAIQmx6m-lxb1qPI03XBhBhqUqJnFynfUV9NpUGBpT7VmHd4Ym8AGP6E9eDFWx1Yjq8YWfTzPnd3UubeKjBeJ9_XgPMi5rH5MyRCaaKXs6ZbcSXo3KRAaw38lLt330X-vuXSzfIvjwPz6gWFyoQbbD_Zmc9c9oP3hFrlW3fZgNZcNoYmXuep5Hm8uxiy4gWi6hupRHhyG0jfcNK53clPyQkkSkmx5P5nmdxKkiZlMp_1E2aRlrCY0uWH4ojHH76xax1Uap2yG62i5SuLFfBEls3ZdzDHFZcpCrFgRhXEdJasFYrxc0DCiRTjjaxrSOIzDNEzjRZQEmNZVHVFcVIj1EudkHmLnWlSIcxco3cy4MQOulxFN4plgBQrj3z1KJV7AC92VvtjN9NrZfCuGxpB5KLix5sOL5Vb4B_P29pHFDnLGxdj0nap4fX1uelU_XaNuBshLTjZbkmb_84AFs0GLdWtt7y4HQnNC84bbdiiCUnWE5g7X9Pet1-oPP8O5z8YQmvts_wkAAP__kEpxLg">