diff --git a/src/main/java/tracker/Tracker.java b/src/main/java/tracker/Tracker.java
index 11e0265..795d595 100644
--- a/src/main/java/tracker/Tracker.java
+++ b/src/main/java/tracker/Tracker.java
@@ -42,6 +42,7 @@
         tx.begin();
         try {
             // 1) find the seedId by infoHash
+            System.out.println("DEBUG AddUpLoad: Looking for infoHash: '" + infoHash + "' (length: " + infoHash.length() + ")");
             String seedId = em.createQuery(
                 "SELECT s.seedId FROM SeedHash s WHERE s.infoHash = :ih", String.class)
                 .setParameter("ih", infoHash)
@@ -98,9 +99,9 @@
             ).setParameter("uid", userid)
             .getSingleResult();
 
-            System.out.println("按回车继续...");
+            System.out.println("------------------------------------------------");
             System.out.printf("thisadd:%d userptsofar:%d userptafter:%d totaluploadnow:%d delta:%d%n",upload, PTuploadbefor,PTuploadafter, totalUpload,delta);
-            System.out.println("按回车继续...");
+            System.out.println("------------------------------------------------");
             return false;      // success
         } catch (RuntimeException ex) {
             if (tx.isActive()) tx.rollback();
@@ -151,6 +152,7 @@
         EntityTransaction tx = em.getTransaction();
         try {
             // 1. 查 SeedHash
+            System.out.println("DEBUG AddDownload: Looking for infoHash: '" + infoHash + "' (length: " + infoHash.length() + ")");
             TypedQuery<SeedHash> qsh = em.createQuery(
                 "SELECT s FROM SeedHash s WHERE s.infoHash = :h", SeedHash.class);
             qsh.setParameter("h", infoHash);
@@ -556,4 +558,18 @@
         
         return -1;
     }
+
+    /**
+     * 从数据库中查询所有 info_hash（hex 字符串）
+     */
+    public List<String> getAllInfoHashes() {
+        EntityManager em = emf.createEntityManager();
+        try {
+            return em.createQuery(
+                "SELECT sh.infoHash FROM SeedHash sh", String.class
+            ).getResultList();
+        } finally {
+            em.close();
+        }
+    }
 }
\ No newline at end of file
