Add native symbol uploads to Mac OS symupload tool.

- sym-upload-v2 protocol only.
- Supports elf, dwp, debug_only, macho, dsym, pe, and pdb (with the classic mode being called 'breakpad').

Change-Id: I68c0065aec3a7ffe29b364dd9e2e1dbdb58e3e5d
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2357528
Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
Nelson Billing 2020-08-14 18:32:45 -07:00
parent 62d9272419
commit 9c38ab7c67
3 changed files with 127 additions and 30 deletions

View file

@ -95,7 +95,8 @@ typedef NS_ENUM(NSInteger, SymbolStatus) {
withAPIKey:(NSString*)APIKey
withUploadKey:(NSString*)uploadKey
withDebugFile:(NSString*)debugFile
withDebugID:(NSString*)debugID;
withDebugID:(NSString*)debugID
withType:(NSString*)type;
@end

View file

@ -77,9 +77,9 @@
[allowedDebugFileCharacters
formUnionWithCharacterSet:[NSCharacterSet controlCharacterSet]];
[allowedDebugFileCharacters invert];
NSString* escapedDebugFile = [debugFile
stringByAddingPercentEncodingWithAllowedCharacters:
allowedDebugFileCharacters];
NSString* escapedDebugFile =
[debugFile stringByAddingPercentEncodingWithAllowedCharacters:
allowedDebugFileCharacters];
NSURL* URL = [NSURL
URLWithString:[NSString
@ -189,7 +189,8 @@
withAPIKey:(NSString*)APIKey
withUploadKey:(NSString*)uploadKey
withDebugFile:(NSString*)debugFile
withDebugID:(NSString*)debugID {
withDebugID:(NSString*)debugID
withType:(NSString*)type {
NSURL* URL = [NSURL
URLWithString:[NSString
stringWithFormat:@"%@/v1/uploads/%@:complete?key=%@",
@ -199,7 +200,8 @@
[NSDictionary dictionaryWithObjectsAndKeys:debugFile, @"debug_file",
debugID, @"debug_id", nil];
NSDictionary* jsonDictionary = [NSDictionary
dictionaryWithObjectsAndKeys:symbolIdDictionary, @"symbol_id", nil];
dictionaryWithObjectsAndKeys:symbolIdDictionary, @"symbol_id", type,
@"symbol_upload_type", nil];
NSError* error;
NSData* jsonData =
[NSJSONSerialization dataWithJSONObject:jsonDictionary