<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/57298>57298</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
(MachO/Darwin) llvm-objcopy processed BSD ar archive seems broken for LLDB debugger
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
dreampiggy
</td>
</tr>
</table>
<pre>
Platform: macOS 12.4 / Darwin
LLVM Version: 13
### Issue description
`llvm-objcopy` can use without any args. I just use that to strip some sections if need. However, when I just use the command below
```
llvm-objcopy input.a output.a
```
When use the output.a as a debug OSO on Darwin platform, the LLDB debugger seems can no longer parse the current ar archive format.
### Screenshot
See the comparation, the `ar(1)` command can succeesfully extract the object files.

However, seems LLDB can no longer extract the processed one.
The code in [ObjectContainerBSDArchive.cpp](https://lldb.llvm.org/cpp_reference/ObjectContainerBSDArchive_8cpp.html) shows that there are only 2 object in the archive.
```
Printing description of this->m_objects:
(std::vector<ObjectContainerBSDArchive::Object, std::allocator<ObjectContainerBSDArchive::Object> >) m_objects = size=3 {
[0] = {
ar_name = (m_string = "__.SYMDEF")
modification_time = 0
uid = 0
gid = 0
mode = 0
size = 1948
file_offset = 80
file_size = 1936
}
[1] = {
ar_name = (m_string = "AppDelegate.o")
modification_time = 0
uid = 0
gid = 0
mode = 420
size = 103812
file_offset = 2096
file_size = 103792
}
[2] = {
ar_name = (m_string = "AwemeMain.o")
modification_time = 0
uid = 0
gid = 0
mode = 420
size = 14229
file_offset = 105960
file_size = 14217
}
}
```
### Comparation and attachment
[archive.zip](https://github.com/llvm/llvm-project/files/9402166/archive.zip)
origin one:
```
➜ test ar -tlv origin/libAwemeCore_lib.a
rw-r--r-- 0/0 1936 Jan 1 08:00 1970 __.SYMDEF SORTED
rw-r--r-- 0/0 103792 Jan 1 08:00 1970 AppDelegate.o
rw-r--r-- 0/0 14224 Jan 1 08:00 1970 AwemeMain.o
rw-r--r-- 0/0 6888 Jan 1 08:00 1970 DebugLog.o
rw-r--r-- 0/0 2112 Jan 1 08:00 1970 AwemeCore.o
rw-r--r-- 0/0 16040 Jan 1 08:00 1970 NSBundle+AwemeCore.o
rw-r--r-- 0/0 15696 Jan 1 08:00 1970 AWEFriendsActivityWidgetConfigurationIntent.o
rw-r--r-- 0/0 8048 Jan 1 08:00 1970 AWEFriendsActivityWidgetLandingPage.o
rw-r--r-- 0/0 7896 Jan 1 08:00 1970 AWEFriendsWidgetsColorScheme.o
```
modified one(using `llvm-objcopy`):
```
➜ test ar -tlv modified/libAwemeCore_lib.a
rw-r--r-- 501/20 1936 Aug 23 19:40 2022 __.SYMDEF SORTED
rw-r--r-- 0/0 103792 Jan 1 08:00 1970 AppDelegate.o
rw-r--r-- 0/0 14224 Jan 1 08:00 1970 AwemeMain.o
rw-r--r-- 0/0 6888 Jan 1 08:00 1970 DebugLog.o
rw-r--r-- 0/0 2112 Jan 1 08:00 1970 AwemeCore.o
rw-r--r-- 0/0 16040 Jan 1 08:00 1970 NSBundle+AwemeCore.o
rw-r--r-- 0/0 15696 Jan 1 08:00 1970 AWEFriendsActivityWidgetConfigurationIntent.o
rw-r--r-- 0/0 8048 Jan 1 08:00 1970 AWEFriendsActivityWidgetLandingPage.o
rw-r--r-- 0/0 7896 Jan 1 08:00 1970 AWEFriendsWidgetsColorScheme.o
```
Is this because of the llvm-objcopy does not run some of `runlib(1)` tool ? I'm not really familiar with these archive format details.
Anyone who works on either LLDB or llvm-objcopy can answer this question ?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztWN1v2zYQ_2vkl4MF6sOy9OAHJ06wDMlSzEWLPRm0dJLZSqJHUvHSv75HyY5lV97cAsOAoYb8QfJ4vPvdB--8ltnr7F3JTS5V5QRzqHj6vATPd0Nw_HtYcLUTtcMWDps_Pn54gg-otJC1JfWCbn7_6QfdAw9aNwgZ6lSJrbHEfbKIleVLNZbrT6ncvtIQUl5DoxF2wmxkY4DXr8BVoV14gE-NNu2i2XADRoI2xBS0rBA0ppa7BpFDjZi58Ivc4Qsqx7-F3Qbr0_0IqawqXmewxlLuzoTaP-2wLyCIetsYlwNJ1v4Y3NF9frRnHg470APXwAmNdVPA8_IZZL0HFbYH2Elcu-PxcXHTERaoSDusdItNLaGUtZ3bcnVQpVEKa8JK0ZNuxAuCZcWNO2yTZaoQa72Rpr--xDdgiDVvbbUXhlTjBGTsOX7SGmmPnRVIN2mKqPOmLF8B_zKKp6bTef2JbAK5KFGfCeI5kxtR8QKdyYLYbozZanIi8jF6CDM1ble1W5AXNGs7k8rakI4uHU00UeIl05CUuffiyAvj0EvGaRSGOA2TMY8zNg55FI55sE7HeZxkEWZBnLPY3daF1aEnTc9NOpRb5E-h7qu1VTJFrTEj4-GJXu9b8DIkLwFS8LnV_5bk5qJGdbNczDvjuOl2O6R4WWZr17qbKxVJeU9kK4U5km1TpPFFhquYSN2NqUrSDciuO70PkQ1tJp8gY9RkHf9gExLQqrJ3FvdvvP-dErURddGPYJA5bRd67AR31apj2Wqxt26sTWaHwfyFVqRygtuLond03XJrgsNWXpYy5d-zO7gDelsE3oSiiQVo8YUIFwE405tORLDmYWSCdr03DQTJquaUTtoFP65WNsWQ-t3YX63c5R9Pizsyl__mR3ZfJTORi7SNmpURew7sSNCI7Hyq-Haqsu5zNmflb-e8JIyP0zauVjLPNZp2NWZna719QfSm-HTRw8D7EQzm2-0CSyy4QVf-2ziE_iASLIg9_zIWPkuii2iwYJr4w3j4P4THDit8Is_8z9AI_f6h52B4bJJEl50j9L3pN2gcfwxdbceb5PZ4V4C9ELgxPN1UlKhP6Cc3h1TzRQymvi7P75O7TYH7rzFl2y413Lf3CH0nIfO9KKJffZ6nOb37lEoUlOkoTR-T06BSd76T3DnJLYBB3V6jY1O-QLffSiLWrZFvpcIVDQ73vtqN1dg-0L0Y0TJ4e9m4g1_pIgEPWEwyMEZzUwZvWQSWz7-_v1tcwa3z2kFup_F4hWDWX8JhVj1XvkbDKI7jQUYLW7g8yuJKPr7nXdDtAPuVmkUsZIOMflveNHVW0jV68708J1EybMb5x7t7JbDO9JxqzxdhXj-KrEB7UeWiaLqweOjKlutwiFk4jOelox4p6CgVvaNi6cojpvE_atOx1reylGqZbgitA-_BbNAlua4eosBudJsbv6nsbYj-UBge-F8diBNGdeq93zOhDcQ5ldyUsTwrBTmJz3z_ZyD-DMT_USA-6LYsp4425bbxbMt0hJMGNpOoqbExoJq6a5yJivjQkOKp1-IZKUsqEO7hwfGnVbcFue3xcl6JUlB02hbdnqDxrO2kZoEq9fK065vXr5QgqBWXsJPqs7a9LwrboXQdl1SnktoOjNd6R-utVn82lBRsnUFCdRxHOKNCwPMnYTKNR9ksyJIg4SMjTIkzUuWJSpFnAn3_twU1BicHHBs5aij6vXPXBq6V_EwdPGl02ouPGlXOvrt6EfZvEFu-TKZ-Eo82s3y9RrZO4jQJMswZTbIgR8aTcJJlURCPSr7GUs-odqKqssYdtCxshTlZjMTM5i8W-4FHSWQSu0kepixJcn-acI9x7oQMK7LBWz85UrNWJFJC02IptNHHRa61KGrE9jjizxuzkWqWkcmrrSiK11F7-qyV_itBvSEa">