DBG: resolved some issues with removing disabled breakpoints + fixed an issue with the database not being removed when every breakpoint etc was removed
This commit is contained in:
		
							parent
							
								
									ab829cee65
								
							
						
					
					
						commit
						fd621b76ed
					
				|  | @ -33,6 +33,8 @@ void dbsave() | ||||||
|         json_dump_file(root, dbpath, JSON_INDENT(4)); |         json_dump_file(root, dbpath, JSON_INDENT(4)); | ||||||
|         LZ4_compress_file(dbpath, dbpath); |         LZ4_compress_file(dbpath, dbpath); | ||||||
|     } |     } | ||||||
|  |     else //remove database when nothing is in there
 | ||||||
|  |         DeleteFileA(dbpath); | ||||||
|     json_decref(root); //free root
 |     json_decref(root); //free root
 | ||||||
|     dprintf("%ums\n", GetTickCount()-ticks); |     dprintf("%ums\n", GetTickCount()-ticks); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -1356,7 +1356,7 @@ CMDRESULT cbDebugSetBPX(int argc, char* argv[]) //bp addr [,name [,type]] | ||||||
| 
 | 
 | ||||||
| static bool cbDeleteAllBreakpoints(const BREAKPOINT* bp) | static bool cbDeleteAllBreakpoints(const BREAKPOINT* bp) | ||||||
| { | { | ||||||
|     if(bpdel(bp->addr, BPNORMAL) and DeleteBPX(bp->addr)) |     if(bpdel(bp->addr, BPNORMAL) and (!bp->enabled or DeleteBPX(bp->addr))) | ||||||
|         return true; |         return true; | ||||||
|     dprintf("delete breakpoint failed: "fhex"\n", bp->addr); |     dprintf("delete breakpoint failed: "fhex"\n", bp->addr); | ||||||
|     return false; |     return false; | ||||||
|  | @ -1381,9 +1381,15 @@ CMDRESULT cbDebugDeleteBPX(int argc, char* argv[]) | ||||||
|     BREAKPOINT found; |     BREAKPOINT found; | ||||||
|     if(bpget(0, BPNORMAL, arg1, &found)) //found a breakpoint with name
 |     if(bpget(0, BPNORMAL, arg1, &found)) //found a breakpoint with name
 | ||||||
|     { |     { | ||||||
|         if(!bpdel(found.addr, BPNORMAL) or !DeleteBPX(found.addr)) |         if(!bpdel(found.addr, BPNORMAL)) | ||||||
|         { |         { | ||||||
|             dprintf("delete breakpoint failed: "fhex"\n", found.addr); |             dprintf("delete breakpoint failed (bpdel): "fhex"\n", found.addr); | ||||||
|  |             return STATUS_ERROR; | ||||||
|  |         } | ||||||
|  |         else if(found.enabled && !DeleteBPX(found.addr)) | ||||||
|  |         { | ||||||
|  |             dprintf("delete breakpoint failed (DeleteBPX): "fhex"\n", found.addr); | ||||||
|  |             GuiUpdateAllViews(); | ||||||
|             return STATUS_ERROR; |             return STATUS_ERROR; | ||||||
|         } |         } | ||||||
|         return STATUS_CONTINUE; |         return STATUS_CONTINUE; | ||||||
|  | @ -1394,9 +1400,15 @@ CMDRESULT cbDebugDeleteBPX(int argc, char* argv[]) | ||||||
|         dprintf("no such breakpoint \"%s\"\n", arg1); |         dprintf("no such breakpoint \"%s\"\n", arg1); | ||||||
|         return STATUS_ERROR; |         return STATUS_ERROR; | ||||||
|     } |     } | ||||||
|     if(!bpdel(found.addr, BPNORMAL) or !DeleteBPX(found.addr)) |     if(!bpdel(found.addr, BPNORMAL)) | ||||||
|     { |     { | ||||||
|         dprintf("delete breakpoint failed: "fhex"\n", found.addr); |         dprintf("delete breakpoint failed (bpdel): "fhex"\n", found.addr); | ||||||
|  |         return STATUS_ERROR; | ||||||
|  |     } | ||||||
|  |     else if(found.enabled && !DeleteBPX(found.addr)) | ||||||
|  |     { | ||||||
|  |         dprintf("delete breakpoint failed (DeleteBPX): "fhex"\n", found.addr); | ||||||
|  |         GuiUpdateAllViews(); | ||||||
|         return STATUS_ERROR; |         return STATUS_ERROR; | ||||||
|     } |     } | ||||||
|     dputs("breakpoint deleted!"); |     dputs("breakpoint deleted!"); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue