| 
															
																@@ -40,11 +40,10 @@ def get_elf_globals(path): 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             # handle only variable types 
															 | 
															
															 | 
															
																             # handle only variable types 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if DIE.tag != 'DW_TAG_variable': 
															 | 
															
															 | 
															
																             if DIE.tag != 'DW_TAG_variable': 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 continue 
															 | 
															
															 | 
															
																                 continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            if 'DW_AT_name' not in DIE.attributes: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                continue 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if 'DW_AT_location' not in DIE.attributes: 
															 | 
															
															 | 
															
																             if 'DW_AT_location' not in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 continue 
															 | 
															
															 | 
															
																                 continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            if 'DW_AT_type' not in DIE.attributes: 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if 'DW_AT_name' not in DIE.attributes and \ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+               'DW_AT_abstract_origin' not in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 continue 
															 | 
															
															 | 
															
																                 continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             # handle locations encoded directly as DW_OP_addr (leaf globals) 
															 | 
															
															 | 
															
																             # handle locations encoded directly as DW_OP_addr (leaf globals) 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -57,7 +56,18 @@ def get_elf_globals(path): 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 continue 
															 | 
															
															 | 
															
																                 continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             loc -= SRAM_OFFSET 
															 | 
															
															 | 
															
																             loc -= SRAM_OFFSET 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            # variable name 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            # variable name/type 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if 'DW_AT_name' not in DIE.attributes and \ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+               'DW_AT_abstract_origin' in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                DIE = DIE.get_DIE_from_attribute('DW_AT_abstract_origin') 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                if 'DW_AT_location' in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    # duplicate reference (handled directly), skip 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if 'DW_AT_name' not in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if 'DW_AT_type' not in DIE.attributes: 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                continue 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             name = DIE.attributes['DW_AT_name'].value.decode('ascii') 
															 | 
															
															 | 
															
																             name = DIE.attributes['DW_AT_name'].value.decode('ascii') 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																             # recurse on type to find the final storage definition 
															 | 
															
															 | 
															
																             # recurse on type to find the final storage definition 
															 |