debugger: support octal on the Mac native debugger [R. Belmont]

This commit is contained in:
arbee 2021-10-27 22:02:48 -04:00
parent 44467bff32
commit 374a6c6546

View File

@ -57,6 +57,16 @@
{ {
return (memview->chunks_per_row() + [item tag]) > 0; return (memview->chunks_per_row() + [item tag]) > 0;
} }
else if (action == @selector(showHexidecimalAddr:))
{
[item setState:((memview->address_radix() == 16) ? NSOnState : NSOffState)];
return YES;
}
else if (action == @selector(showOctalAddr:))
{
[item setState:((memview->address_radix() == 8) ? NSOnState : NSOffState)];
return YES;
}
else else
{ {
return [super validateMenuItem:item]; return [super validateMenuItem:item];
@ -184,6 +194,13 @@
downcast<debug_view_memory *>(view)->set_physical([sender tag]); downcast<debug_view_memory *>(view)->set_physical([sender tag]);
} }
- (IBAction)showHexidecimalAddr:(id)sender {
downcast<debug_view_memory *>(view)->set_address_radix(16);
}
- (IBAction)showOctalAddr:(id)sender {
downcast<debug_view_memory *>(view)->set_address_radix(8);
}
- (IBAction)showReverseView:(id)sender { - (IBAction)showReverseView:(id)sender {
downcast<debug_view_memory *>(view)->set_reverse([sender tag]); downcast<debug_view_memory *>(view)->set_reverse([sender tag]);
@ -222,34 +239,62 @@
- (void)insertActionItemsInMenu:(NSMenu *)menu atIndex:(NSInteger)index { - (void)insertActionItemsInMenu:(NSMenu *)menu atIndex:(NSInteger)index {
NSMenuItem *chunkItem1 = [menu insertItemWithTitle:@"1-byte Chunks" NSMenuItem *chunkItem1 = [menu insertItemWithTitle:@"1-byte Chunks (Hex)"
action:@selector(showChunkSize:) action:@selector(showChunkSize:)
keyEquivalent:@"1" keyEquivalent:@"1"
atIndex:index++]; atIndex:index++];
[chunkItem1 setTarget:self]; [chunkItem1 setTarget:self];
[chunkItem1 setTag:int(debug_view_memory::data_format::HEX_8BIT)]; [chunkItem1 setTag:int(debug_view_memory::data_format::HEX_8BIT)];
NSMenuItem *chunkItem2 = [menu insertItemWithTitle:@"2-byte Chunks" NSMenuItem *chunkItem2 = [menu insertItemWithTitle:@"2-byte Chunks (Hex)"
action:@selector(showChunkSize:) action:@selector(showChunkSize:)
keyEquivalent:@"2" keyEquivalent:@"2"
atIndex:index++]; atIndex:index++];
[chunkItem2 setTarget:self]; [chunkItem2 setTarget:self];
[chunkItem2 setTag:int(debug_view_memory::data_format::HEX_16BIT)]; [chunkItem2 setTag:int(debug_view_memory::data_format::HEX_16BIT)];
NSMenuItem *chunkItem4 = [menu insertItemWithTitle:@"4-byte Chunks" NSMenuItem *chunkItem4 = [menu insertItemWithTitle:@"4-byte Chunks (Hex)"
action:@selector(showChunkSize:) action:@selector(showChunkSize:)
keyEquivalent:@"4" keyEquivalent:@"4"
atIndex:index++]; atIndex:index++];
[chunkItem4 setTarget:self]; [chunkItem4 setTarget:self];
[chunkItem4 setTag:int(debug_view_memory::data_format::HEX_32BIT)]; [chunkItem4 setTag:int(debug_view_memory::data_format::HEX_32BIT)];
NSMenuItem *chunkItem8 = [menu insertItemWithTitle:@"8-byte Chunks" NSMenuItem *chunkItem8 = [menu insertItemWithTitle:@"8-byte Chunks (Hex)"
action:@selector(showChunkSize:) action:@selector(showChunkSize:)
keyEquivalent:@"8" keyEquivalent:@"8"
atIndex:index++]; atIndex:index++];
[chunkItem8 setTarget:self]; [chunkItem8 setTarget:self];
[chunkItem8 setTag:int(debug_view_memory::data_format::HEX_64BIT)]; [chunkItem8 setTag:int(debug_view_memory::data_format::HEX_64BIT)];
NSMenuItem *chunkItem12 = [menu insertItemWithTitle:@"1-byte Chunks (Octal)"
action:@selector(showChunkSize:)
keyEquivalent:@"3"
atIndex:index++];
[chunkItem12 setTarget:self];
[chunkItem12 setTag:int(debug_view_memory::data_format::OCTAL_8BIT)];
NSMenuItem *chunkItem13 = [menu insertItemWithTitle:@"2-byte Chunks (Octal)"
action:@selector(showChunkSize:)
keyEquivalent:@"5"
atIndex:index++];
[chunkItem13 setTarget:self];
[chunkItem13 setTag:int(debug_view_memory::data_format::OCTAL_16BIT)];
NSMenuItem *chunkItem14 = [menu insertItemWithTitle:@"4-byte Chunks (Octal)"
action:@selector(showChunkSize:)
keyEquivalent:@"7"
atIndex:index++];
[chunkItem14 setTarget:self];
[chunkItem14 setTag:int(debug_view_memory::data_format::OCTAL_32BIT)];
NSMenuItem *chunkItem15 = [menu insertItemWithTitle:@"8-byte Chunks (Octal)"
action:@selector(showChunkSize:)
keyEquivalent:@"9"
atIndex:index++];
[chunkItem15 setTarget:self];
[chunkItem15 setTag:int(debug_view_memory::data_format::OCTAL_64BIT)];
NSMenuItem *chunkItem9 = [menu insertItemWithTitle:@"32-bit floats" NSMenuItem *chunkItem9 = [menu insertItemWithTitle:@"32-bit floats"
action:@selector(showChunkSize:) action:@selector(showChunkSize:)
keyEquivalent:@"F" keyEquivalent:@"F"
@ -273,6 +318,22 @@
[menu insertItem:[NSMenuItem separatorItem] atIndex:index++]; [menu insertItem:[NSMenuItem separatorItem] atIndex:index++];
NSMenuItem *hexidecimalItem = [menu insertItemWithTitle:@"Hexidecimal Addresses"
action:@selector(showHexidecimalAddr:)
keyEquivalent:@"H"
atIndex:index++];
[hexidecimalItem setTarget:self];
[hexidecimalItem setTag:FALSE];
NSMenuItem *octalItem = [menu insertItemWithTitle:@"Octal Addresses"
action:@selector(showOctalAddr:)
keyEquivalent:@"O"
atIndex:index++];
[octalItem setTarget:self];
[octalItem setTag:TRUE];
[menu insertItem:[NSMenuItem separatorItem] atIndex:index++];
NSMenuItem *logicalItem = [menu insertItemWithTitle:@"Logical Addresses" NSMenuItem *logicalItem = [menu insertItemWithTitle:@"Logical Addresses"
action:@selector(showPhysicalAddresses:) action:@selector(showPhysicalAddresses:)
keyEquivalent:@"v" keyEquivalent:@"v"