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

    <tr>
        <th>Summary</th>
        <td>
            [lldb] SBProcess.GetSTDENV doesn't not return the debugee error messages
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          da-viper
      </td>
    </tr>
</table>

<pre>
    When using the SBProcess from the SBAPI. 

It the messages written to stderr is send through stdout. 

example code
```cpp
#include <iostream>

int main()  { 
    std::cout << "INFO: from debugee stdout\n";
    std::cerr << "ERROR: from debugee stdcerr\n";
}
```

using the SB_API adapted from example/process_events.py

```py
#!/usr/bin/env python3
# name: process_io.py
# ----------------------------------------------------------------------
# Be sure to add the python path that points to the LLDB shared library.
# On MacOSX csh, tcsh:
#   setenv PYTHONPATH /Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python
# On MacOSX sh, bash:
#   export PYTHONPATH=/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python
# ----------------------------------------------------------------------
import lldb
import sys


def handle_events(process: lldb.SBProcess, listener: lldb.SBListener):
    event = lldb.SBEvent()
    while listener.WaitForEvent(1, event):
        state = lldb.SBProcess.GetStateFromEvent(event)

        if state == lldb.eStateExited or state == lldb.eStateDetached:
            break

 elif state == lldb.eStateStopped:
            process.Continue()


def main():
    exec = sys.argv[1]
    debugger = lldb.SBDebugger.Create()
 launch_info = lldb.SBLaunchInfo(sys.argv)
    target = debugger.CreateTarget(exec)

    if not target:
        print(f"target is not valid\n target: {exec}", file=sys.stderr)
        return
    
 target_error = lldb.SBError()
    process = target.Launch(launch_info, target_error)

    print(f"launch: {target_error}")

    if process and process.GetProcessID() != lldb.LLDB_INVALID_PROCESS_ID:
 handle_events(process, debugger.GetListener())

        process_stdout = process.GetSTDOUT(1024)
        print(f"Process STDOUT:\n{process_stdout}")

        process_stderr = process.GetSTDERR(1024)
        print(f"Process STDERR:\n{process_stderr}")
        process.Kill()


if __name__ == "__main__":
    main()
```

compile and run with 

`./process_io.py a.out`
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8Vl9v4roS_zTmxWoUHGjggQcgZBfd3raC3t29T5GJB-K7wY5sh7bf_mqcBJJu90hHWh2EhBjP_DzzG88fbq08KYAFma7INBnx2hXaLAS_u8gKzOigxfviewGK1laqE3UF0P3q2egcrKVHo8-taPm8DSgJlyRcbp2XncFafgJLX410DhR1mlonwBgqLbWgBHWF0fWpQLGuXWcPb_xclUBzLQAl92HzzasK_7JIqrysBVASraW2zgA_k2jTGEvl6JlLRdiMsDmlJF4hLKUUbyHRkkTLXNcOjUm0poSx7WP6RKJlE42AQ30CaF0i07UijJFo9QsGxnHD2Ox2T7vPQFBvgELipB9U43Wf3Gz5vKVc8MqBaOBaQghLq4b4DC6gnA2q98b8itYIWETYmLC0toaw9IBkpKAutHp3hVZRo0IVPwN63GFKHXTm9O6PfFqwFVBbG8D8cyF8lI0ntOKuoK7gjlZaKmdRBY8fHpIVtQU3IGgpD4ab96AFe1L03zx_2v-guS0IW1OHv9GyPabUgsNYn__78vXp8Xn58pUSli6rqpQ5d1IrS1j6A59WwKuKsHStlUMyCUv3_sbU8DO8avMTRehJcOwkhKU7sLo2OeDhs4_iF8cavw586Be8Vdq4nl8kSv4Zz_5YMuXZh1CW4nD7Z99t-wjDpYAjLbgSJbQvlLBZ-7zwpaFhcO0eSFIprQMFpnf60InYvKEPy86jURIlndYGBU2NtyqvhSzhChh859Kl2nR6Y7wNmj893KakuYM-dutf8AXcHs9So88dzhUi7EPI4w3lCgTeePMmsY61-a1GAo7nBYihV_g5GOA_25ug_ItL9k5X1WcILfkBPiWpargydsvXrVn26H6D3DNi323AzelCpqsxmSbtsW9vJzB90pJWFqwNcHe7iJa8VnmRSXXUff0HL96qoyZsdr3mmk3HzQmajIsh8os_wVS8QT7IhDxSpV1rOuSiMtKn70gYa6Gl9doXXkqBDfpmhzPDg8cJdm22pkdZAokSdLOZYDdH8WPA1Ua1AvxpoDIwRg9I2qBg8GrbBHmlxipomCFs1mPON7oe6CDufnCNTRvEwKINZshXdz1X4vpWvoBrK2CbtFMUx0kXBfadbPv4bfmwTbLn3dN6s99n26Tl-3fVz9a3PH4Bdytyz8XHeupGUjOEPTk97_YvydN_XrCoQzYZZqJPRbektOrR0o_heDUE_4SXDx40g_6jB5vd7u94gOqfeYBvqefBx7r9lyzLDzUrjzTLcHZnWdcJCGNZhnWcZX7N6ALplfYvG0euzxU2TMy8qRV9la6g120i6O0afi-gPECy7sORWERiHs35CBbjeDKdRHHM4lGxmMEhH0fTSSQOszmL4yOIeMLm0f0Yomg-EyO5YCGbhhMWjeeT2SQO8vvDPA_z8F6IKIrFlExCOHNZBmV5OQfanEbS2hoW4ygOJ7NRyQ9QWr-oMqbglfpTDHiajMwCje4O9cmSSYhTwN5gnHSl33D95JomdNjjX5LN4zcqNFhFWOx8W2hK2i8j3TLXVHO31Y5qUy4K5yqcbISlhKUn6Yr6EOT6TFiKl7c_d5XR_4PcEZZ6l3FAtzFdFuz_AQAA___amXa7">